Preface_make.Free_monadBuilding a Preface_specs.Free_monad
Build a Preface_specs.FREE_MONAD over a Preface_specs.FUNCTOR.
module Over_functor
(F : Preface_specs.FUNCTOR) :
Preface_specs.FREE_MONAD with type 'a f = 'a F.tBuild a Preface_specs.FREE_MONAD over a Preface_specs.APPLICATIVE.
module Over_applicative
(F : Preface_specs.APPLICATIVE) :
Preface_specs.FREE_MONAD with type 'a f = 'a F.tBuild a Preface_specs.FREE_MONAD over a Preface_specs.SELECTIVE.
module Over_selective
(F : Preface_specs.SELECTIVE) :
Preface_specs.FREE_MONAD with type 'a f = 'a F.tBuild a Preface_specs.FREE_MONAD over a Preface_specs.MONAD.
module Over_monad
(F : Preface_specs.MONAD) :
Preface_specs.FREE_MONAD with type 'a f = 'a F.t