A heuristic search framework in OCaml