Exceptions monads for OCaml