Conditions vs truth states

I have been thinking for a long time and I still can’t figure out why Inform is so fussy about truth states. Why aren’t they interchangeable with conditions? Why are they different at all, or at least, why isn’t a condition considered a sort of “description of truth states”?

I’ve adapted Dannii’s “Simple Unit Tests” in my test suite for Kerkerkruip, but I’ve hacked away at it quite a bit. Just now I finally eliminated the “to assert (C - a condition)” phrase - it was just too much trouble.

Inform is very weird about using a condition as a phrase parameter:

Dannii basically hacked this by writing the assert phrase in I6, but I was never happy with that solution. I have now replaced it with “To assert (failure report - a text) based on (result - a truth state)”. This works fine, but it means my code is littered with “whether or nots”…

	assert "summoned creature shouldn't oppose undead player" based on whether or not the summoned creature does not oppose the player;
	assert "summoned creature should oppose drakul" based on whether or not the summoned creature opposes drakul;

The phrasing is particularly awkward when multiple negatives are involved. If any clever person can help me figure out how to reword this phrase, I’d be very grateful!

	fail based on whether or not the blessed grenade is not off-stage within 100 attempts;

I keep coming back and trying to think of clever ways to make these phrases less of a mouthful… no luck. Any ideas?

It is annoying. What was the problem with I6 though? If absolutely necessary you could call an I7 phrase in your I6 code…

I tried that, but when it didn’t work the first time, I thought maybe there was another reason I coudn’t do it.

I don’t mind not having the “to assert (condition)” phrase because it reminds me to always put something more descriptive in where I would use that.

But if you can think of a clever phrase meaning the opposite of “whether or not,” it would really be nice to have that for negated conditions. The best thing I can think of is “the falsehood of whether or not.” Or “deny … whether or not” instead of “assert … whether or not.”