function
(cmp x y)
Returns -1 if x is strictly less than y, 1 if y is strictly greater
than x, and 0 otherwise. To return 0, x and y must be the exact
same type.
(cmp 0.0 0)
# => 0
(cmp [1 2] [1 2 3])
# => -1
(cmp 1.0 2)
# => -1