Module Monads.Std.Monad.Option

module Option: sig .. end
The option aka Maybe monad.

This monad can be used to denote partial computations or a limited form of non-deterministic computations where an absence of result, i.e., the bottom value, can be considered as a posible outcome.

module type S = sig .. end
The unary option monad.
module type S2 = sig .. end
The binary option monad
include Monads.Std.Monad.Option.S
module T1 (M : Std.T1) : sig .. end
module T2 (M : Std.T2) : sig .. end
module Make (M : Std.Monad.Monad) : S  with type 'a m := 'a T1(M).m
           and type 'a t := 'a T1(M).t
           and type 'a e := 'a T1(M).e
Make(M) composes the option monad with the monad M.
module Make2 (M : Std.Monad.Monad2) : S2  with type ('a,'e) t := ('a,'e) T2(M).t
            and type ('a,'e) m := ('a,'e) T2(M).m
            and type ('a,'e) e := ('a,'e) T2(M).e
Make2(M) composes the option monad with the monad M.