sig
type 'a t
val ( >>= ) :
'a Monad.Option.t -> ('a -> 'b Monad.Option.t) -> 'b Monad.Option.t
val ( >> ) : 'a Monad.Option.t -> 'b Monad.Option.t -> 'b Monad.Option.t
val return : 'a -> 'a Monad.Option.t
val run : 'a Monad.Option.t -> 'a
val fail : 'a Monad.Option.t
val on_fail : 'a Monad.Option.t -> 'a Monad.Option.t -> 'a Monad.Option.t
end