Data Structures from Okasaki's book, in OCaml