Preface_specs.ContravariantContravariant is a "Contravariant functor". In other word, Contravariant is the dual of a Functor.
To have a predictable behaviour, the instance of Contravariant must obey some laws.
contramap id = id(contramap f) % (contramap g) = contramap (g % f)module type WITH_CONTRAMAP = sig ... endThe minimum definition of a Contravariant. It is by using the combinators of this module that the other combinators will be derived.
module type CORE = WITH_CONTRAMAPBasis operations.
module type OPERATION = sig ... endAdditional operations.
module type INFIX = sig ... endInfix operators.
module type API = sig ... endThe complete interface of a Contravariant Functor.