let compare x y = let (x1, x2, x3) = decomp x and (y1, y2, y3) = decomp y in let (>>=) x f = if x = 0 then f () else x in let cmp x y () = verrevcmp x y in x1 - y1 >>= cmp x2 y2 >>= cmp x3 y3