> 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]; > } This third version is much simpler and it seems good enough for Rosettacode: http://codepad.org/YJjb1t91 Bye, bearophile