Guarded Methods in OCaml