To see if yours works, you need to test these:
XOR T T 1 2 (* arguments to fn from XOR are same type *) XOR T F 1 2 XOR F T 1 2 (* cases where F is first XOR arg *) XOR F F 1 2 XOR T T "a" 2 (* arguments to fn from XOR are different types *) XOR T F "a" 2 XOR F T "a" 2 XOR F F "a" 2
Some solutions work in the first two cases only.
Some solutions work in the first 4 cases.
Some work in all 8 cases.