Difference list library for OCaml