Module Base.Either.First

type ('a, 'b) t = ('a'bt
include Monad.S2 with type (a, b) t := (a, b) t
type ('a, 'e) t
include Base__.Monad_intf.Infix2 with type (a, e) t := (a, e) t
type ('a, 'e) t
val (>>=) : ('a'et ‑> ('a ‑> ('b'et) ‑> ('b'et
val (>>|) : ('a'et ‑> ('a ‑> 'b) ‑> ('b'et
include Base__.Monad_intf.Syntax2 with type (a, e) t := (a, e) t
type ('a, 'e) t
module Let_syntax : sig ... end
module Monad_infix : Base__.Monad_intf.Infix2 with type (a, e) t := (a, e) t
val bind : ('a'et ‑> f:('a ‑> ('b'et) ‑> ('b'et
val return : 'a ‑> ('a_t
val map : ('a'et ‑> f:('a ‑> 'b) ‑> ('b'et
val join : (('a'et'et ‑> ('a'et
val ignore_m : (_'et ‑> (unit, 'et
val all : ('a'et list ‑> ('a list, 'et
val all_unit : (unit, 'et list ‑> (unit, 'et
val all_ignore : (unit, 'et list ‑> (unit, 'et
  • Deprecated [since 2018-02] Use [all_unit]
include Applicative.S2 with type (a, b) t := (a, b) t
type ('a, 'e) t
val return : 'a ‑> ('a_t
val apply : ('a ‑> 'b'et ‑> ('a'et ‑> ('b'et
val map : ('a'et ‑> f:('a ‑> 'b) ‑> ('b'et
val map2 : ('a'et ‑> ('b'et ‑> f:('a ‑> 'b ‑> 'c) ‑> ('c'et
val map3 : ('a'et ‑> ('b'et ‑> ('c'et ‑> f:('a ‑> 'b ‑> 'c ‑> 'd) ‑> ('d'et
val all : ('a'et list ‑> ('a list, 'et
val all_unit : (unit, 'et list ‑> (unit, 'et
val all_ignore : (unit, 'et list ‑> (unit, 'et
  • Deprecated [since 2018-02] Use [all_unit]
val both : ('a'et ‑> ('b'et ‑> ('a * 'b'et
module Applicative_infix : sig ... end
include module type of Applicative_infix
val (<*>) : ('a ‑> 'b'et ‑> ('a'et ‑> ('b'et
val (<*) : ('a'et ‑> (unit, 'et ‑> ('a'et
val (*>) : (unit, 'et ‑> ('a'et ‑> ('a'et
module Args : Applicative.Args2 with type (a, e) arg := (a, e) t
val value : ('a_t ‑> default:'a ‑> 'a
val to_option : ('a_t ‑> 'a option
val with_return : ('a With_return.return ‑> 'b) ‑> ('a'bt
val combine : ('a'dt ‑> ('b'dt ‑> f:('a ‑> 'b ‑> 'c) ‑> other:('d ‑> 'd ‑> 'd) ‑> ('c'dt
val combine_all : ('a'bt list ‑> f:('b ‑> 'b ‑> 'b) ‑> ('a list, 'bt
val combine_all_unit : (unit, 'bt list ‑> f:('b ‑> 'b ‑> 'b) ‑> (unit, 'bt