Preface_makeSet of functors (in ML sense) whose role is to achieve the abstractions described in Preface_specs. Each abstraction described in the specifications has its image in Preface.Make and the functors take as arguments modules constrained by the signatures described in Preface_specs and produce modules whose complete interface is also described in Preface_specs.)
For a detailed description of the module breakdown logic, go to the homepage.
The achievement of an abstraction usually offers several paths:
Preface_specs.MONOID defined over a Preface_specs.SEMIGROUP)Preface_specs.ALTERNATIVE into a Preface_specs.MONOID by fixing the type of the Alternative.Preface_specs.FUNCTOR.module Semigroup : sig ... endBuilding a Preface_specs.Semigroup
module Monoid : sig ... endBuilding a Preface_specs.Monoid
module Meet_semilattice : sig ... endBuilding a Preface_specs.Meet_semilattice
module Join_semilattice : sig ... endBuilding a Preface_specs.Join_semilattice
module Bounded_meet_semilattice : sig ... endBuilding a Preface_specs.Bounded_meet_semilattice
module Bounded_join_semilattice : sig ... endBuilding a Preface_specs.Bounded_join_semilattice
module Bounded_lattice : sig ... endBuilding a Preface_specs.Bounded_lettice
module Lattice : sig ... endBuilding a Preface_specs.Lettice
module Indexed_functor : sig ... endBuilding a Preface_specs.Indexed_functor
module Indexed_alt : sig ... endBuilding a Preface_specs.Indexed_alt
module Indexed_apply : sig ... endBuilding a Preface_specs.INDEXED_APPLY
module Indexed_applicative : sig ... endBuilding a Preface_specs.Indexed_applicative
module Indexed_alternative : sig ... endBuilding a Preface_specs.Indexed_alternative
module Indexed_selective : sig ... endBuilding a Preface_specs.Indexed_selective
module Indexed_bind : sig ... endBuilding a Preface_specs.Indexed_bind
module Indexed_monad : sig ... endBuilding a Preface_specs.Indexed_monad
module Indexed_monad_plus : sig ... endBuilding a Preface_specs.Indexed_monad_plus
module Indexed_comonad : sig ... endBuilding an Preface_specs.Indexed_comonad
module Indexed_foldable : sig ... endBuilding an Preface_specs.INDEXED_FOLDABLE
module Invariant : sig ... endBuilding a Preface_specs.Invariant
module Functor : sig ... endBuilding a Preface_specs.Functor
module Alt : sig ... endBuilding a Preface_specs.Alt
module Apply : sig ... endBuilding a Preface_specs.APPLY
module Applicative : sig ... endBuilding a Preface_specs.Applicative
module Alternative : sig ... endBuilding a Preface_specs.Alternative
module Selective : sig ... endBuilding a Preface_specs.Selective
module Bind : sig ... endBuilding a Preface_specs.Bind
module Monad : sig ... endBuilding a Preface_specs.Monad
module Monad_plus : sig ... endBuilding a Preface_specs.Monad_plus
module Comonad : sig ... endBuilding a Preface_specs.Comonad
module Foldable : sig ... endBuilding a Preface_specs.Foldable
module Traversable : sig ... endBuilding a Preface_specs.Traversable
module Contravariant : sig ... endBuilding a Preface_specs.Contravariant
module Divisible : sig ... endBuilding a Preface_specs.Divisible
module Decidable : sig ... endBuilding a Preface_specs.Decidable
module Bifunctor : sig ... endBuilding a Preface_specs.Bifunctor
module Profunctor : sig ... endBuilding a Preface_specs.Profunctor
module Strong : sig ... endBuilding a Preface_specs.Strong
module Choice : sig ... endBuilding a Preface_specs.Choice
module Closed : sig ... endBuilding a Preface_specs.Closed
module Semigroupoid : sig ... endBuilding a Preface_specs.Semigroupoid
module Category : sig ... endBuilding a Preface_specs.Category
module Arrow : sig ... endBuilding a Preface_specs.Arrow
module Arrow_zero : sig ... endBuilding a Preface_specs.Arrow_zero
module Arrow_alt : sig ... endBuilding a Preface_specs.Arrow_alt
module Arrow_plus : sig ... endBuilding a Preface_specs.Arrow_plus
module Arrow_choice : sig ... endBuilding a Preface_specs.Arrow_choice
module Arrow_apply : sig ... endBuilding a Preface_specs.Arrow_apply
module Reader : sig ... endBuilding a Preface_specs.Reader, a Reader transformer.
module Writer : sig ... endBuilding a Preface_specs.Writer, a Writer transformer.
module State : sig ... endBuilding a Preface_specs.State, a State transformer.
module Store : sig ... endBuilding a Preface_specs.Store, a Store transformer.
module Env : sig ... endBuilding a Preface_specs.Env, an Env transformer.
module Traced : sig ... endBuilding a Preface_specs.Traced, a Traced transformer.
module Free_applicative : sig ... endBuilding a Preface_specs.Free_applicative
module Free_selective : sig ... endBuilding a Preface_specs.Free_selective
module Freer_selective : sig ... endBuilding a Preface_specs.Freer_selective
module Free_monad : sig ... endBuilding a Preface_specs.Free_monad
module Freer_monad : sig ... endBuilding a Preface_specs.Freer_monad
Produces abstractions based on other abstractions (e.g. bifunctors from functors). Mainly for dealing with different arities.
module Join : sig ... endJoin produces a Functor from a Bifunctor using both arguments of a Bifunctor.
module Clown : sig ... endClown can produces Bifunctor or Profunctor using a Functor (or a Contravariant) on the first argument of the Bi/Profunctor as described in Clowns to the Left, Jokers to the Right (Functional Pearl)
module Joker : sig ... endJoker can produces Bifunctor or Profunctor using a Functor on the second argument of the Bi/Profunctor as described in Clowns to the Left, Jokers to the Right (Functional Pearl)
module Kleisli : sig ... endKleisli uses the Kleisli category to describe arity 2 constructions for arity 1 constructions, usually using the form: type ('a, 'b) t = 'a -> F.t.
module Cokleisli : sig ... endCokleisli uses the Cokleisli category to describe arity 2 constructions for arity 1 constructions, usually using the form: type ('a, 'b) t = 'a F.t -> 'b.