Module Stdlib.Result
Results
type ('a, 'e) t
= ('a, 'e) Stdlib.result
=
|
Ok of 'a
|
Error of 'e
The type for result values. Either a value
Ok v
or an errorError e
.
val ok : 'a -> ('a, 'e) Stdlib.result
ok v
isOk v
.
val error : 'e -> ('a, 'e) Stdlib.result
error e
isError e
.
val value : ('a, 'e) Stdlib.result -> default:'a -> 'a
value r ~default
isv
ifr
isOk v
anddefault
otherwise.
val get_ok : ('a, 'e) Stdlib.result -> 'a
get_ok r
isv
ifr
isOk v
and- raises Invalid_argument
otherwise.
val get_error : ('a, 'e) Stdlib.result -> 'e
get_error r
ise
ifr
isError e
and- raises Invalid_argument
otherwise.
val bind : ('a, 'e) Stdlib.result -> ('a -> ('b, 'e) Stdlib.result) -> ('b, 'e) Stdlib.result
bind r f
isf v
ifr
isOk v
andr
ifr
isError _
.
val join : (('a, 'e) Stdlib.result, 'e) Stdlib.result -> ('a, 'e) Stdlib.result
join rr
isr
ifrr
isOk r
andrr
ifrr
isError _
.
val map : ('a -> 'b) -> ('a, 'e) Stdlib.result -> ('b, 'e) Stdlib.result
map f r
isOk (f v)
ifr
isOk v
andr
ifr
isError _
.
val map_error : ('e -> 'f) -> ('a, 'e) Stdlib.result -> ('a, 'f) Stdlib.result
map_error f r
isError (f e)
ifr
isError e
andr
ifr
isOk _
.
val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) Stdlib.result -> 'c
fold ~ok ~error r
isok v
ifr
isOk v
anderror e
ifr
isError e
.
val iter : ('a -> unit) -> ('a, 'e) Stdlib.result -> unit
iter f r
isf v
ifr
isOk v
and()
otherwise.
val iter_error : ('e -> unit) -> ('a, 'e) Stdlib.result -> unit
iter_error f r
isf e
ifr
isError e
and()
otherwise.
Predicates and comparisons
val is_ok : ('a, 'e) Stdlib.result -> bool
is_ok r
istrue
iffr
isOk _
.
val is_error : ('a, 'e) Stdlib.result -> bool
is_error r
istrue
iffr
isError _
.
val equal : ok:('a -> 'a -> bool) -> error:('e -> 'e -> bool) -> ('a, 'e) Stdlib.result -> ('a, 'e) Stdlib.result -> bool
equal ~ok ~error r0 r1
tests equality ofr0
andr1
usingok
anderror
to respectively compare values wrapped byOk _
andError _
.
val compare : ok:('a -> 'a -> int) -> error:('e -> 'e -> int) -> ('a, 'e) Stdlib.result -> ('a, 'e) Stdlib.result -> int
compare ~ok ~error r0 r1
totally ordersr0
andr1
usingok
anderror
to respectively compare values wrapped byOk _
andError _
.Ok _
values are smaller thanError _
values.
Converting
val to_option : ('a, 'e) Stdlib.result -> 'a option
to_option r
isr
as an option, mappingOk v
toSome v
andError _
toNone
.
val to_list : ('a, 'e) Stdlib.result -> 'a list
to_list r
is[v]
ifr
isOk v
and[]
otherwise.
val to_seq : ('a, 'e) Stdlib.result -> 'a Stdlib.Seq.t
to_seq r
isr
as a sequence.Ok v
is the singleton sequence containingv
andError _
is the empty sequence.