Module Equal

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

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


      type 'a t
      include Equal.S1 with type 'a t := 'a t


type 'a t = 'a -> 'a -> bool
type 'a equal = 'a t
module type S = sig .. end
module type S1 = sig .. end
module type S2 = sig .. end
module type S3 = sig .. end