sig
  module Toggle :
    sig
      type (-'a, +'b) t
      val sexp_of_t :
        '-> '-> ('c, 'd) Error_check.Toggle.t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) ->
        success_alert:('-> 'b) -> ('a, 'b) Error_check.Toggle.t
      val check : ('a, 'b) Error_check.Toggle.t -> '-> 'b option
      val state : ('a, 'b) Error_check.Toggle.t -> bool
    end
  module ToggleN :
    sig
      type (-'a, +'b) t
      val sexp_of_t :
        '-> '-> ('c, 'd) Error_check.ToggleN.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) Error_check.ToggleN.t
      val check : ('a, 'b) Error_check.ToggleN.t -> '-> 'b option
      val state : ('a, 'b) Error_check.ToggleN.t -> bool
    end
  module Timer :
    sig
      type (-'a, +'b) t
      val sexp_of_t :
        '-> '-> ('c, 'd) Error_check.Timer.t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) ->
        success_alert:('-> 'b) ->
        min_alert_interval:Span.t -> ('a, 'b) Error_check.Timer.t
      val check : ('a, 'b) Error_check.Timer.t -> '-> Time.t -> 'b option
      val state : ('a, 'b) Error_check.Timer.t -> bool
    end
  module Step :
    sig
      type ('a, -'b, +'c) t
      val sexp_of_t :
        '->
        '-> '-> ('d, 'e, 'f) Error_check.Step.t -> Std_internal.Sexp.t
      val create :
        threshold:'->
        adjust:('-> threshold:'-> 'a) ->
        assertion:('-> threshold:'-> bool) ->
        fail_alert:('-> 'c) ->
        success_alert:('-> 'c) -> ('a, 'b, 'c) Error_check.Step.t
      val check : ('a, 'b, 'c) Error_check.Step.t -> '-> 'c option
      val state : ('a, 'b, 'c) Error_check.Step.t -> bool
    end
  module ReportAllFails :
    sig
      type (-'a, +'b) t
      val sexp_of_t :
        '->
        '-> ('c, 'd) Error_check.ReportAllFails.t -> Std_internal.Sexp.t
      val create :
        assertion:('-> bool) ->
        fail_alert:('-> 'b) ->
        success_alert:('-> 'b) -> ('a, 'b) Error_check.ReportAllFails.t
      val check : ('a, 'b) Error_check.ReportAllFails.t -> '-> 'b option
      val state : ('a, 'b) Error_check.ReportAllFails.t -> bool
    end
end