sig
  type 'a t = 'Invariant_intf.t
  module type S = Invariant_intf.S
  module type S1 = Invariant_intf.S1
  module type S2 = Invariant_intf.S2
  module type S3 = Invariant_intf.S3
  val invariant :
    Source_code_position0.t ->
    '-> ('-> Sexplib.Sexp.t) -> (unit -> unit) -> unit
  val check_field : '-> 'b t -> ('a, 'b) Fieldslib.Field.t -> unit
end