Either.Second
type ('a, 'b) t = ('b, 'a) t
include Base.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 Base.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 Base.With_return.return -> 'b) -> ('a, 'b) t