Preface_specs.AltAlt is a Functor which is a kind of Semigroup over a parametrized type. In other word, Alt is a Functor with a combine operation.
To ensure that the derived combiners work properly, an Alt should respect these laws:
combine (combine a b) c = combine a (combine b c)map f (combine a b) = combine (map f a) (map f b)module type WITH_COMBINE = sig ... endCombine operation. This signature is mainly used to enrich a Functor with combine.
module type WITH_COMBINE_AND_MAP = sig ... endThe minimum definition of an Alt. It is by using the combinators of this module that the other combinators will be derived.
module type CORE = WITH_COMBINE_AND_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 an Alt.