sig
  module Toggle :
    sig
      type ('a, 'b) t = ('a, 'b) Error_check.Toggle.t
      val sexp_of_t : '-> '-> ('c, 'd) t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) -> success_alert:('-> 'b) -> ('a, 'b) t
      val check : ('a, 'b) t -> '-> 'b option
      val state : ('a, 'b) t -> bool
    end
  module ToggleN :
    sig
      type ('a, 'b) t = ('a, 'b) Error_check.ToggleN.t
      val sexp_of_t : '-> '-> ('c, 'd) t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) ->
        final_fail_alert:('-> 'b) ->
        success_alert:('-> 'b) ->
        max_consecutive_fail_alerts:int -> ('a, 'b) t
      val check : ('a, 'b) t -> '-> 'b option
      val state : ('a, 'b) t -> bool
    end
  module Timer :
    sig
      type ('a, 'b) t = ('a, 'b) Error_check.Timer.t
      val sexp_of_t : '-> '-> ('c, 'd) t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) ->
        success_alert:('-> 'b) -> min_alert_interval:Span.t -> ('a, 'b) t
      val check : ('a, 'b) t -> '-> Time.t -> 'b option
      val state : ('a, 'b) t -> bool
    end
  module Step :
    sig
      type ('a, 'b, 'c) t = ('a, 'b, 'c) Error_check.Step.t
      val sexp_of_t : '-> '-> '-> ('d, 'e, 'f) t -> Std_internal.Sexp.t
      val create :
        threshold:'->
        adjust:('-> threshold:'-> 'a) ->
        assertion:('-> threshold:'-> bool) ->
        fail_alert:('-> 'c) -> success_alert:('-> 'c) -> ('a, 'b, 'c) t
      val check : ('a, 'b, 'c) t -> '-> 'c option
      val state : ('a, 'b, 'c) t -> bool
    end
  module ReportAllFails :
    sig
      type ('a, 'b) t = ('a, 'b) Error_check.ReportAllFails.t
      val sexp_of_t : '-> '-> ('c, 'd) t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) -> success_alert:('-> 'b) -> ('a, 'b) t
      val check : ('a, 'b) t -> '-> 'b option
      val state : ('a, 'b) t -> bool
    end
end