Implement a Prolog interpreter in Ocaml