let rec compare lst1 lst2 =
match lst1, lst2 with
| hd1 :: tl1, hd2 :: tl2 ->
begin
match Pervasives.compare hd1 hd2 with
| 0 -> compare tl1 tl2
| n -> n
end
| [], _ :: _ -> -1
| _ :: _, [] -> 1
| [], [] -> 0