CCResultSourceError Monad
Uses the new "result" type from OCaml 4.03.
Fast internal iterator.
of_exn_trace e is similar to of_exn e, but it adds the stacktrace to the error message.
Remember to call Printexc.record_backtrace true and compile with the debug flag for this to work.
fail_printf format uses format to obtain an error message and then returns Error msg.
fail_fprintf format uses format to obtain an error message and then returns Error msg.
add_ctx msg leaves Ok x untouched, but transforms Error s into Error s' where s' contains the additional context given by msg.
Map a fallible operation through an option.
Like map, but also with a function that can transform the error message in case of failure.
Extract the value x from Ok x, fails otherwise. You should be careful with this function, and favor other combinators whenever possible.
get_or e ~default returns x if e = Ok x, default otherwise.
get_or_failwith e returns x if e = Ok x, fails otherwise.
get_lazy default_fn x unwraps x, but if x = Error e it returns default_fr e instead.
map_or f e ~default returns f x if e = Ok x, default otherwise.
catch e ~ok ~err calls either ok or err depending on the value of e.
fold ~ok ~error e opens e and, if e = Ok x, returns ok x, otherwise e = Error s and it returns error s.
fold_ok f acc r will compute f acc x if r=Ok x, and return acc otherwise, as if the result were a mere option.
guard f runs f () and returns its result wrapped in Ok. If f () raises some exception e, then it fails with Error e.
Like guard_str but uses of_exn_trace instead of of_exn so that the stack trace is printed.
Like guard but gives the function two arguments.
Like guard but gives the function three arguments.
join t, in case of success, returns Ok o from Ok (Ok o). Otherwise, it fails with Error e where e is the unwrapped error of t.
both a b, in case of success, returns Ok (o, o') with the ok values of a and b. Otherwise, it fails, and the error of a is chosen over the error of b if both fail.
include module type of InfixInfix version of map with reversed arguments.
Monadic composition. e >>= f proceeds as f x if e is Ok x or returns e if e is an Error.
a <*> b evaluates a and b, and, in case of success, returns Ok (a b). Otherwise, it fails, and the error of a is chosen over the error of b if both fail.
Same as map_l id: returns Ok [x1;…;xn] if l=[Ok x1; …; Ok xn], or the first error otherwise.
map_l f [a1; …; an] applies the function f to a1, …, an ,and, in case of success for every element, returns the list of Ok-value. Otherwise, it fails and returns the first error encountered. Tail-recursive.
choose l selects a member of l that is a Ok _ value, or returns Error l otherwise, where l is the list of errors.
retry n f calls f at most n times, returning the first result of f () that doesn't fail. If f fails n times, retry n f fails with the list of successive errors.
of_opt opt converts Some v to Ok v and None to Error "of_opt".