## Solutions to XOR in ML

ML's type system makes explicit representation of lambda calculus
a bit tough in some cases.
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.