let max a b = if cmp a b <= 0 then b else a