Module Invariant

module Invariant: Invariant

val __pa_ounit_275876e34cf609db118f3d84b799a790 : string

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

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