OCaml implementation of PubGrub