package spin
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=d151cf6aee92c3b6f2d596b11b5d1ac2c75d554b681aa736b6293981344d062c
sha512=e80ec9d40eecace6684308960ea224b81ce6e2fc8e81201c99702d13b3d888b7f2de9379777c94719bf679ee6ed10e3a83668064bba36cf1121f1f6628539046
doc/spin.std/Spin_std/Result/index.html
Module Spin_std.ResultSource
include module type of struct include Base.Result end
'ok is the return type, and 'err is often an error message string.
type nat = Zero | Succ of nat
let pred = function
| Succ n -> Ok n
| Zero -> Error "Zero does not have a predecessor"The return type of pred could be nat option, but (nat, string) Result.t gives more control over the error message.
val hash_fold_t :
(Base.Hash.state -> 'a -> Base.Hash.state) ->
(Base.Hash.state -> 'b -> Base.Hash.state) ->
Base.Hash.state ->
('a, 'b) t ->
Base.Hash.stateinclude Base.Monad.S2_local with type ('a, 'err) t := ('a, 'err) t
e.g., failf "Couldn't find bloogle %s" (Bloogle.to_string b).
val combine :
('ok1, 'err) t ->
('ok2, 'err) t ->
ok:('ok1 -> 'ok2 -> 'ok3) ->
err:('err -> 'err -> 'err) ->
('ok3, 'err) 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.