Module Std.Result
include module type of struct include Stdlib.Result end
Results
type (('a : value_or_null), ('e : value_or_null)) t = ('a, 'e) Stdlib.result = The type for result values. Either a value Ok v or an error Error e.
val ok :
('a : value_or_null) ('e : value_or_null). 'a ->
('a, 'e) Stdlib.result @@ portableok v is Ok v.
val error :
('a : value_or_null) ('e : value_or_null). 'e ->
('a, 'e) Stdlib.result @@ portableerror e is Error e.
val value :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
default:'a ->
'a @@ portablevalue r ~default is v if r is Ok v and default otherwise.
val get_ok :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
'a @@ portableget_ok r is v if r is Ok v and raise otherwise.
val get_error :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
'e @@ portableget_error r is e if r is Error e and raise otherwise.
val join :
('a : value_or_null) ('e : value_or_null). (('a, 'e) Stdlib.result, 'e)
Stdlib.result ->
('a, 'e) Stdlib.result @@ portablejoin rr is r if rr is Ok r and rr if rr is Error _.
val map_error :
('a : value_or_null) ('e : value_or_null) ('f : value_or_null). ('e -> 'f) ->
('a, 'e) Stdlib.result ->
('a, 'f) Stdlib.result @@ portablemap_error f r is Error (f e) if r is Error e and r if r is Ok _.
val fold :
('a : value_or_null) ('c : value_or_null) ('e : value_or_null). ok:('a -> 'c) ->
error:('e -> 'c) ->
('a, 'e) Stdlib.result ->
'c @@ portablefold ~ok ~error r is ok v if r is Ok v and error e if r is Error e.
val iter :
('a : value_or_null) ('e : value_or_null). ('a -> unit) ->
('a, 'e) Stdlib.result ->
unit @@ portableiter f r is f v if r is Ok v and () otherwise.
val iter_error :
('a : value_or_null) ('e : value_or_null). ('e -> unit) ->
('a, 'e) Stdlib.result ->
unit @@ portableiter_error f r is f e if r is Error e and () otherwise.
Predicates and comparisons
val is_ok :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
bool @@ portableis_ok r is true if and only if r is Ok _.
val is_error :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
bool @@ portableis_error r is true if and only if r is Error _.
val equal :
('a : value_or_null) ('e : value_or_null). ok:('a -> 'a -> bool) ->
error:('e -> 'e -> bool) ->
('a, 'e) Stdlib.result ->
('a, 'e) Stdlib.result ->
bool @@ portableequal ~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 :
('a : value_or_null) ('e : value_or_null). ok:('a -> 'a -> int) ->
error:('e -> 'e -> int) ->
('a, 'e) Stdlib.result ->
('a, 'e) Stdlib.result ->
int @@ portablecompare ~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.
Converting
val to_option :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
'a option @@ portableto_option r is r as an option, mapping Ok v to Some v and Error _ to None.
val to_list :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
'a list @@ portableto_list r is [v] if r is Ok v and [] otherwise.
val to_seq :
('a : value_or_null) ('e : value_or_null). ('a, 'e) Stdlib.result ->
'a Stdlib.Seq.t @@ portableto_seq r is r as a sequence. Ok v is the singleton sequence containing v and Error _ is the empty sequence.
val map : f:('a -> 'b) -> ('a, 'c) Stdlib.result -> ('b, 'c) Stdlib.resultval bind :
f:('a -> ('b, 'c) Stdlib.result) ->
('a, 'c) Stdlib.result ->
('b, 'c) Stdlib.result