Optimize Segment comparision
let compare seg1 seg2 =
if seg1 == seg2 then 0
else
match seg1, seg2 with
| Encoding (_, s), Encoding (_, s') when s == s' -> 0
| _ -> compare (to_sides seg1) (to_sides seg2)
We must cover at least fast comparison of Encodings.