package jenga

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Layer error monad within tenacious monad

module Problem : sig ... end
type 'a t
val wrap : ('a, Problem.t) Core.Result.t Tenacious.t -> 'a t
val expose : 'a t -> ('a, Problem.t) Core.Result.t Tenacious.t
val of_tenacious : 'a Tenacious.t -> 'a t
val return : 'a -> 'a t
val bind : 'a t -> f:('a -> 'b t) -> 'b t
val (*>>|) : 'a t -> ('a -> 'b) -> 'b t
val cutoff : equal:('a -> 'a -> bool) -> 'a t -> 'a t
val memoize : name:Core.String.t Core.Lazy.t -> 'a t -> 'a t
val error : Reason.t -> 'a t
val all : 'a t list -> 'a list t
val all_unit : unit t list -> unit t
val subgoal : Goal.t -> 'a t -> 'a t
val both : 'a t -> 'b t -> ('a * 'b) t
val of_deferred : (unit -> 'a Async.Deferred.t) -> 'a t
val desensitize : 'a t -> ('a * Tenacious.Heart.t) t
val sensitize : Tenacious.Heart.t -> unit t
val bracket : 'a t -> running:(int -> unit) -> finished:(('a, Problem.t) Core.Result.t -> unit) -> cancelled:(unit -> unit) -> 'a t
val uncancellable : 'a t -> 'a t
val return_result : ('a, Reason.t) Core.Result.t -> 'a t
val bind_result : 'a t -> ('a -> ('b, Reason.t) Core.Result.t) -> 'b t