Preface_specs.CategoryA Category is a generalization of function composition to morphisms.
To have a predictable behaviour, the instance of Category must obey some laws.
f % id = fid % f = ff % (g % h) = (f % g) % hmodule type WITH_ID_AND_COMPOSE = sig ... endMinimal interface using id and compose.
module type CORE = WITH_ID_AND_COMPOSEBasis operations.
module type OPERATION = sig ... endAdditional operations.
module type INFIX = sig ... endInfix operators.
module type API = sig ... endThe complete interface of a Category.