module Equal:sig..end
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
    or
      type 'a t
      include Equal.S1 with type 'a t := 'a t
    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
    or
      type 'a t
      include Equal.S1 with type 'a t := 'a t
    type'at ='a -> 'a -> bool
type'aequal ='a t
module type S =sig..end
module type S1 =sig..end
module type S2 =sig..end
module type S3 =sig..end
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
    or
      type 'a t
      include Equal.S1 with type 'a t := 'a t