Stdlib.Result
SourceResult values.
Result values handle computation results and errors in an explicit and declarative manner without resorting to exceptions.
The type for result values. Either a value Ok v
or an error Error e
.
value r ~default
is v
if r
is Ok v
and default
otherwise.
bind r f
is f v
if r
is Ok v
and r
if r
is Error _
.
join rr
is r
if rr
is Ok r
and rr
if rr
is Error _
.
map f r
is Ok (f v)
if r
is Ok v
and r
if r
is Error _
.
map_error f r
is Error (f e)
if r
is Error e
and r
if r
is Ok _
.
fold ~ok ~error r
is ok v
if r
is Ok v
and error e
if r
is Error e
.
iter f r
is f v
if r
is Ok v
and ()
otherwise.
iter_error f r
is f e
if r
is Error e
and ()
otherwise.
val equal :
ok:('a -> 'a -> bool) ->
error:('e -> 'e -> bool) ->
('a, 'e) result ->
('a, 'e) result ->
bool
equal ~ok ~error r0 r1
tests equality of r0
and r1
using ok
and error
to respectively compare values wrapped by Ok _
and Error _
.
val compare :
ok:('a -> 'a -> int) ->
error:('e -> 'e -> int) ->
('a, 'e) result ->
('a, 'e) result ->
int
compare ~ok ~error r0 r1
totally orders r0
and r1
using ok
and error
to respectively compare values wrapped by Ok _
and Error _
. Ok _
values are smaller than Error _
values.
to_option r
is r
as an option, mapping Ok v
to Some v
and Error _
to None
.