containers
CCEither
Either Monad
Module that is compatible with Either form OCaml 4.12 but can be use with any ocaml version compatible with container
containers.bencode
containers.cbor
containers.codegen
containers.monomorphic
containers.pp
containers.scc
containers.top
containers.unix
type 'a iter = ('a -> unit) -> unit
type 'a equal = 'a -> 'a -> bool
type 'a ord = 'a -> 'a -> int
type 'a printer = Format.formatter -> 'a -> unit
type ('a, 'b) t = ('a, 'b) Either.t =
| Left of 'a
| Right of 'b
val left : 'a -> ('a, 'b) t
left l is Left l
left l
Left l
val right : 'b -> ('a, 'b) t
right r is Right r
right r
Right r
val is_left : ('a, 'b) t -> bool
is_left x checks if x = Left _
is_left x
x = Left _
val is_right : ('a, 'b) t -> bool
is_right x checks if x = Right _
is_right x
x = Right _
val find_left : ('a, 'b) t -> 'a option
find_left x returns l if x = Left l and None otherwise.
find_left x
l
x = Left l
None
val find_right : ('a, 'b) t -> 'b option
find_right x returns r if x = Left r and None otherwise.
find_right x
r
x = Left r
val map_left : ('a1 -> 'a2) -> ('a1, 'b) t -> ('a2, 'b) t
Map of the Left variant.
val map_right : ('b1 -> 'b2) -> ('a, 'b1) t -> ('a, 'b2) t
Map of the Right variant.
val map : left:('a1 -> 'a2) -> right:('b1 -> 'b2) -> ('a1, 'b1) t -> ('a2, 'b2) t
Map using left or right.
left
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.
Left
Right
val equal : left:('a -> 'a -> bool) -> right:('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool
val compare : left:('a -> 'a -> int) -> right:('b -> 'b -> int) -> ('a, 'b) t -> ('a, 'b) t -> int
val pp : left:'a printer -> right:'b printer -> ('a, 'b) t printer
Pretty printer.