Support for various monadic operations in OCaml