The sentence "Unlike and and or, these procedures must evaluate all their arguments in order to provide correct SQL-style semantics." is of dubious character.

Scheme is a strict language, arguments are always evaluated before the procedure is called. It is not the procedure that evaluates its arguments; evaluation of the arguments is part of the evaluation of the procedure call.

A reformulation could be: "Unlike and and or, tri-and and tri-or are procedures and not syntax. In particular, evaluation of a form like (tri-and ... ...) implies the evaluation of all of ... ..., which is necessary to give provide the correct SQL-style semantics."

-- Marc