Module Core.ResultSource
This module extends Base.Result.
include Bin_prot.Binable.S_local2
with type ('a, 'b) t := ('a, 'b) Core.Result.t
include Ppx_compare_lib.Comparable.S2
with type ('a, 'b) t := ('a, 'b) Core.Result.t
include Ppx_compare_lib.Equal.S2 with type ('a, 'b) t := ('a, 'b) Core.Result.t
include Ppx_hash_lib.Hashable.S2 with type ('a, 'b) t := ('a, 'b) Core.Result.t
include Typerep_lib.Typerepable.S2
with type ('a, 'b) t := ('a, 'b) Core.Result.t
Source
val typerep_of_t :
'a Typerep_lib.Std_internal.Typerep.t ->
'b Typerep_lib.Std_internal.Typerep.t ->
('a, 'b) Core.Result.t Typerep_lib.Std_internal.Typerep.tSource
val typename_of_t :
'a Typerep_lib.Typename.t ->
'b Typerep_lib.Typename.t ->
('a, 'b) Core.Result.t Typerep_lib.Typename.tinclude Sexplib0.Sexpable.S2 with type ('a, 'b) t := ('a, 'b) Core.Result.t
include Sexplib0.Sexpable.S2
with type ('ok, 'err) t := ('ok, 'err) Core.Result.t
Source
val t_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
(Sexplib0.Sexp.t -> 'b) ->
Sexplib0.Sexp.t ->
('a, 'b) Core.Result.tSource
val sexp_of_t :
('a -> Sexplib0.Sexp.t) ->
('b -> Sexplib0.Sexp.t) ->
('a, 'b) Core.Result.t ->
Sexplib0.Sexp.tSource
val t_sexp_grammar :
'ok Sexplib0.Sexp_grammar.t ->
'err Sexplib0.Sexp_grammar.t ->
('ok, 'err) Core.Result.t Sexplib0.Sexp_grammar.tSource
val compare :
('a -> 'a -> int) ->
('b -> 'b -> int) ->
('a, 'b) Core.Result.t ->
('a, 'b) Core.Result.t ->
intSource
val equal :
('a -> 'a -> bool) ->
('b -> 'b -> bool) ->
('a, 'b) Core.Result.t ->
('a, 'b) Core.Result.t ->
boolSource
val hash_fold_t :
(Base.Hash.state -> 'a -> Base.Hash.state) ->
(Base.Hash.state -> 'b -> Base.Hash.state) ->
Base.Hash.state ->
('a, 'b) Core.Result.t ->
Base.Hash.stateSource
val globalize :
('ok -> 'ok) ->
('err -> 'err) ->
('ok, 'err) Core.Result.t ->
('ok, 'err) Core.Result.tinclude Base.Monad.S2_local with type ('a, 'err) t := ('a, 'err) Core.Result.t
Source
val (>>=) :
('a, 'e) Core.Result.t ->
('a -> ('b, 'e) Core.Result.t) ->
('b, 'e) Core.Result.tSource
val bind :
('a, 'e) Core.Result.t ->
f:('a -> ('b, 'e) Core.Result.t) ->
('b, 'e) Core.Result.te.g., failf "Couldn't find bloogle %s" (Bloogle.to_string b).
Source
val combine :
('ok1, 'err) Core.Result.t ->
('ok2, 'err) Core.Result.t ->
ok:('ok1 -> 'ok2 -> 'ok3) ->
err:('err -> 'err -> 'err) ->
('ok3, 'err) Core.Result.tReturns Ok if both are Ok and Error otherwise.
combine_errors ts returns Ok if every element in ts is Ok, else it returns Error with all the errors in ts.
This is similar to all from Monad.S2, with the difference that all only returns the first error.
combine_errors_unit returns Ok if every element in ts is Ok (), else it returns Error with all the errors in ts, like combine_errors.
to_either is useful with List.partition_map. For example:
let ints, exns =
List.partition_map ["1"; "two"; "three"; "4"] ~f:(fun string ->
Result.to_either (Result.try_with (fun () -> Int.of_string string)))ok_if_true returns Ok () if bool is true, and Error error if it is false.