"Implication (not entailment)."
x@(Boolean traits) --> y@(Boolean traits) [x not \/ y].
+"Reverse implication (not entailment)."
+x@(Boolean traits) <-- y@(Boolean traits) [x \/ y not].
+
+"Boolean NAND, the negation of AND."
+x@(Boolean traits) nand: y@(Boolean traits) [(x /\ y) not].
+
+"Boolean NOR, the negation of OR."
+x@(Boolean traits) nor: y@(Boolean traits) [(x \/ y) not].
+
+"Boolean XNOR, the negation of EQV."
+x@(Boolean traits) xnor: y@(Boolean traits) [x ~== y].
+
+x@(Boolean traits) butNot: y@(Boolean traits) [x /\ y not].
+
bool@(Boolean traits) and: block
"Conditional AND, but it can return the value of the block."
[bool ifTrue: block ifFalse: [False]].