Module Common.Foldable

This module follows the Jane Street organisation and naming conventions for 'standard interfaces' i.e. commonly used signatures; briefly:

Where a standard interface is defined for difference arities of type constructors, the convention is to append the arity to the names of the signatures and functors e.g. Basic2, S2 and Make2

module type Basic = sig ... end

The Basic definition for type constructors with a single type variable.

module type S = sig ... end

The complete module signature for Foldable for types with a single type variable.

module Make (X : Basic) : S with type 'a t := 'a X.t
module type Basic2 = sig ... end

The Basic definition for type constructors with two type variables.

module type S2 = sig ... end

The complete module signature for Foldable for types with a single type variable.

module Make2 (X : Basic2) : S2 with type ('a, 'b) t := ('a, 'b) X.t