Module Base__.Invariant_intf

This module defines signatures that are to be included in other signatures to ensure a consistent interface to invariant-style functions. There is a signature (S, S1, S2, S3) for each arity of type. Usage looks like:

      type t
      include Invariant.S with type t := t

or

      type 'a t
      include Invariant.S1 with type 'a t := 'a t
type 'a t = 'a ‑> unit
type 'a inv = 'a t
module type S : sig ... end
module type S1 : sig ... end
module type S2 : sig ... end
module type S3 : sig ... end
module type Invariant : sig ... end