base

Full standard library replacement for OCaml
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library base
Module Base . Either
type ('f, 's) t =
| First of 'f
| Second of 's
val compare : ( 'f -> 'f -> int ) -> ( 's -> 's -> int ) -> ( 'f, 's ) t -> ( 'f, 's ) t -> int
val hash_fold_t : ( Hash.state -> 'f -> Hash.state ) -> ( Hash.state -> 's -> Hash.state ) -> Hash.state -> ( 'f, 's ) t -> Hash.state
include Sexpable.S2 with type ('f, 's) t := ( 'f, 's ) t
val t_of_sexp : ( Sexplib0.Sexp.t -> 'a ) -> ( Sexplib0.Sexp.t -> 'b ) -> Sexplib0.Sexp.t -> ( 'a, 'b ) t
val sexp_of_t : ( 'a -> Sexplib0.Sexp.t ) -> ( 'b -> Sexplib0.Sexp.t ) -> ( 'a, 'b ) t -> Sexplib0.Sexp.t
include Invariant.S2 with type ('a, 'b) t := ( 'a, 'b ) t
val invariant : ( 'a -> unit ) -> ( 'b -> unit ) -> ( 'a, 'b ) t -> unit
val swap : ( 'f, 's ) t -> ( 's, 'f ) t
val value : ( 'a, 'a ) t -> 'a
val iter : ( 'a, 'b ) t -> first:( 'a -> unit ) -> second:( 'b -> unit ) -> unit
val value_map : ( 'a, 'b ) t -> first:( 'a -> 'c ) -> second:( 'b -> 'c ) -> 'c
val map : ( 'a, 'b ) t -> first:( 'a -> 'c ) -> second:( 'b -> 'd ) -> ( 'c, 'd ) t
val equal : ( 'f -> 'f -> bool ) -> ( 's -> 's -> bool ) -> ( 'f, 's ) t -> ( 'f, 's ) t -> bool
module type Focused = sig ... end
module First : Focused with type ('a, 'b) t = ( 'a, 'b ) t
module Second : Focused with type ('a, 'b) t = ( 'b, 'a ) t
val is_first : ( _, _ ) t -> bool
val is_second : ( _, _ ) t -> bool
val first : 'f -> ( 'f, _ ) t

first and second are First.return and Second.return.

val second : 's -> ( _, 's ) t