Frama-C API - Result
Adding let binding operators to the Result module.
include module type of Stdlib.Result
type (!'a, !'e) t = ('a, 'e) Stdlib.result = | Ok of 'a| Error of 'e
val ok : 'a -> ('a, 'e) Stdlib.resultval error : 'e -> ('a, 'e) Stdlib.resultval value : ('a, 'e) Stdlib.result -> default:'a -> 'aval get_ok : ('a, 'e) Stdlib.result -> 'aval get_error : ('a, 'e) Stdlib.result -> 'eval bind : ('a, 'e) Stdlib.result -> ('a -> ('b, 'e) Stdlib.result) -> ('b, 'e) Stdlib.resultval join : (('a, 'e) Stdlib.result, 'e) Stdlib.result -> ('a, 'e) Stdlib.resultval map : ('a -> 'b) -> ('a, 'e) Stdlib.result -> ('b, 'e) Stdlib.resultval map_error : ('e -> 'f) -> ('a, 'e) Stdlib.result -> ('a, 'f) Stdlib.resultval fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) Stdlib.result -> 'cval iter : ('a -> unit) -> ('a, 'e) Stdlib.result -> unitval iter_error : ('e -> unit) -> ('a, 'e) Stdlib.result -> unitval is_ok : ('a, 'e) Stdlib.result -> boolval is_error : ('a, 'e) Stdlib.result -> boolval equal : ok:('a -> 'a -> bool) -> error:('e -> 'e -> bool) -> ('a, 'e) Stdlib.result -> ('a, 'e) Stdlib.result -> boolval compare : ok:('a -> 'a -> int) -> error:('e -> 'e -> int) -> ('a, 'e) Stdlib.result -> ('a, 'e) Stdlib.result -> intval to_option : ('a, 'e) Stdlib.result -> 'a optionval to_list : ('a, 'e) Stdlib.result -> 'a listval to_seq : ('a, 'e) Stdlib.result -> 'a Stdlib.Seq.tval zip : ('a, 'e) Stdlib.result -> ('b, 'e) Stdlib.result -> ('a * 'b, 'e) Stdlib.resultzip 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.