sig
type ('a, 'b, 'c) t = {
initial_threshold : 'a;
mutable threshold : 'a;
loosen : 'b -> threshold:'a -> 'a;
assertion : 'b -> threshold:'a -> bool;
fail_alert : 'b -> 'c;
success_alert : 'b -> 'c;
}
val create :
threshold:'a ->
loosen:('b -> threshold:'a -> 'a) ->
assertion:('b -> threshold:'a -> bool) ->
fail_alert:('b -> 'c) ->
success_alert:('b -> 'c) -> ('a, 'b, 'c) Error_check.Step.t
val check : ('a, 'b, 'c) Error_check.Step.t -> 'b -> 'c option
val state : ('a, 'b, 'c) Error_check.Step.t -> bool
val sexp_of_t :
'a -> 'b -> 'c -> ('d, 'e, 'f) Error_check.Step.t -> Sexplib.Sexp.t
end