The ^ operator is xor.

Also, make() takes an int, so Val's naturally have limits.