sig
type 'a t = 'a 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 ->
'a -> ('a -> Sexplib.Sexp.t) -> (unit -> unit) -> unit
val check_field : 'a -> 'b t -> ('a, 'b) Fieldslib.Field.t -> unit
end