Either.First
type ('a, 'b) t = ('a, 'b) t
include Monad.S2_local with type ('a, 'b) t := ('a, 'b) t
module Let_syntax : sig ... end
module Monad_infix : sig ... end
Same as Infix
, except the monad type has two arguments. The second is always just passed through.
include Applicative.S2_local with type ('a, 'b) t := ('a, 'b) t
val return : 'a -> ('a, _) t
module Applicative_infix : sig ... end
val value : ('a, _) t -> default:'a -> 'a
val to_option : ('a, _) t -> 'a option
val with_return : ('a With_return.return -> 'b) -> ('a, 'b) t