Frama_c_kernel.ResultAdding let binding operators to the Result module.
include module type of ResultThe type for result values. Either a value Ok v or an error Error e.
val ok : 'a -> ('a, 'e) resultok v is Ok v.
val error : 'e -> ('a, 'e) resulterror e is Error e.
val value : ('a, 'e) result -> default:'a -> 'avalue r ~default is v if r is Ok v and default otherwise.
val get_ok : ('a, 'e) result -> 'aget_ok r is v if r is Ok v and raise otherwise.
val get_ok' : ('a, string) result -> 'aget_ok' is like get_ok but in case of error uses the error message for raising Invalid_argument.
val get_error : ('a, 'e) result -> 'eget_error r is e if r is Error e and raise otherwise.
val error_to_failure : ('a, string) result -> 'aerror_to_failure r is v if r is Ok v and raises Failure e if r is Error e.
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 _.
product r0 r1 is Ok (v0, v1) if r0 is Ok v0 and r1 is Ok v2 and otherwise returns the error of r0, if any, or the error of r1.
map_error f r is Error (f e) if r is Error e and r if r is Ok _.
val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'cfold ~ok ~error r is ok v if r is Ok v and error e if r is Error e.
val retract : ('a, 'a) result -> 'aretract r is v if r is Ok v or Error v.
val iter : ('a -> unit) -> ('a, 'e) result -> unititer f r is f v if r is Ok v and () otherwise.
val iter_error : ('e -> unit) -> ('a, 'e) result -> unititer_error f r is f e if r is Error e and () otherwise.
val is_ok : ('a, 'e) result -> boolis_ok r is true if and only if r is Ok _.
val is_error : ('a, 'e) result -> boolis_error r is true if and only if r is Error _.
val equal :
ok:('a -> 'a -> bool) ->
error:('e -> 'e -> bool) ->
('a, 'e) result ->
('a, 'e) result ->
boolequal ~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 ->
intcompare ~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.
val to_option : ('a, 'e) result -> 'a optionto_option r is r as an option, mapping Ok v to Some v and Error _ to None.
val to_list : ('a, 'e) result -> 'a listto_list r is [v] if r is Ok v and [] otherwise.
to_seq r is r as a sequence. Ok v is the singleton sequence containing v and Error _ is the empty sequence.
module Syntax : sig ... endBinding operators.
zip r1 r2 regroups values in a pair Ok (v1, v2) if both arguments are Ok v1 and Ok v2 and propagate errors in other cases. If both r1 and r2 are errors we keep the first one, in this case r1.
module Operators : sig ... end