But I couldn't figure out how to expand the boolean array to an argument list.
With functions like this my last version will become simpler, and it's equally statically type safe:
bool xor(in bool[2] args) pure nothrow { return b[0] != b[1]; } Bye, bearophile