CCEither
Either Monad
Module that is compatible with Either form OCaml 4.12 but can be use with any ocaml version compatible with container
type 'a printer = Stdlib.Format.formatter -> 'a -> unit
val left : 'a -> ('a, 'b) t
left l
is Left l
val right : 'b -> ('a, 'b) t
right r
is Right r
val is_left : ('a, 'b) t -> bool
is_left x
checks if x = Left _
val is_right : ('a, 'b) t -> bool
is_right x
checks if x = Right _
val find_left : ('a, 'b) t -> 'a option
find_left x
returns l
if x = Left l
and None
otherwise.
val find_right : ('a, 'b) t -> 'b option
find_right x
returns r
if x = Left r
and None
otherwise.
Map using left
or right
.
val fold : left:('a -> 'c) -> right:('b -> 'c) -> ('a, 'b) t -> 'c
Fold using left
or right
.
val iter : left:('a -> unit) -> right:('b -> unit) -> ('a, 'b) t -> unit
Iter using left
or right
.
val for_all : left:('a -> bool) -> right:('b -> bool) -> ('a, 'b) t -> bool
Check some property on Left
or Right
variant.