Module Misc_stdlib.Monad
module type Basic2 = sig ... endMulti parameter monad. The second parameter gets unified across all the computation. This is used to encode monads working on a multi parameter data structure like (('a,'b) result).
module type Basic = sig ... endmodule type S2 = sig ... endmodule type S = sig ... endmodule Make
(X : Ocaml_utils.Misc_stdlib.Monad.Basic) :
Ocaml_utils.Misc_stdlib.Monad.S with type 'a t = 'a X.tmodule Make2
(X : Ocaml_utils.Misc_stdlib.Monad.Basic2) :
Ocaml_utils.Misc_stdlib.Monad.S2 with type ('a, 'e) t = ('a, 'e) X.tmodule Identity : Ocaml_utils.Misc_stdlib.Monad.S with type 'a t = 'amodule Option : Ocaml_utils.Misc_stdlib.Monad.S with type 'a t = 'a optionmodule Result :
Ocaml_utils.Misc_stdlib.Monad.S2
with type ('a, 'e) t = ('a, 'e) Stdlib.result