fun normalize (x) { if x < 0 then -1 else if x > 0 then 1 else 0 fi fi } fun f (x) { fun (y) {x + y} } write (compare (1, 2)); write (compare (2, 1)); write (compare (3, 3)); write (compare (2, "abc")); write (compare ("abc", 2)); write (compare ("abc", "abc")); write (normalize (compare ("ab", "abc"))); write (normalize (compare ("abc", "ab"))); write (compare ([], [])); write (compare (A, A)); write (compare (A, B)); write (compare (B, A)); write (compare (A (1), A (1, 1))); write (compare (A (1, 1), A (1))); -- not stable: write (compare (f, f)); -- not stable: write (compare (f, f(5))); -- not stable: write (compare (f(5), f)); -- not stable: write (compare (f(5), f(5))); -- not stable: write (compare (f(5), f(6))); -- not stable: write (compare (f(6), f(5))); write (compare ({1, 2, 3}, {1, 2, 3})); write (compare ({1, [2], [[3]]}, {1, [2], [[3]]})); write (compare ({1, [2], [[3]]}, {1, [2], [3]})); write (compare ({1, [2], [3]}, {1, [2], [[3]]}))