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