May 27

Unimportant topic but I've noticed that it does not seem to use BuildNot() which would generate a xor for i1. Is there a particular reason for that ?

May 31

I suppose it's because bool is checked for truth by comparison to zero. Xor wouldn't provide the law of excluded middle this way.