isZero := { [Z] => True; [] => False }; add := { [Z] => { [y] => y } ; [] => { [y] => add[x][] } }; incr := add[]; two := >; four := >>>; if := { [True] => { [x] => { [_] => x } } ; [False] => { [_] => { [y] => y } } }; minusOne := { [Z] => Z; [] => x }; puts "S is " S; puts "Z is " Z; puts "True is " True; puts "False is " False; puts "Is 0 zero?"; puts isZero[Z]; puts "Is 4 zero?"; puts isZero[four]; puts "2 + 4 = "; puts add[four][two]; puts "Is zero zero?"; puts if[isZero[Z]]["yes"]["no"]; puts "Is 0+1 zero?"; puts if[isZero[incr[Z]]]["yes"]["no"];