type-safe compile-time sql in ocaml