Preface_specs.FunctorA Functor represents a type that can be mapped over. So we can go from 'a t to 'b t using a function from 'a to 'b. Mapping preserve the structure of the input.
To have a predictable behaviour, the instance of Functor must obey some laws.
map id = id;map (f % g) = map f % map g.module type WITH_MAP = sig ... endThe minimum definition of a Functor. It is by using the combinators of this module that the other combinators will be derived.
module type CORE = WITH_MAPBasis operations.
module type OPERATION = sig ... endAdditional operations.
module type INFIX = sig ... endInfix operators.
module type SYNTAX = sig ... endSyntax operators.
module type API = sig ... endThe complete interface of a Functor.