Preface_specs.Free_selective
A Free selective
allows you to build a rigid Preface_specs.Selective
from a given Preface_specs.Functor
.
Such Preface_specs
.selective is equipped with and additional function for promoting
values from the underlying Preface_specs.Functor
into the Free selective
and a Natural transformations
for transforming the value of the Free selective
to an other Preface_specs.Selective
or to a Preface_specs.Monoid
.
Although free constructs are elegant, they introduce an execution cost due to the recursive nature of defining the type of a Free Selective
. There are cheaper encodings but they are not, for the moment, available in Preface.
module type TO_SELECTIVE = sig ... end
The natural transformation for Free Selective
to Selective
.
module type TO_MONOID = sig ... end
The natural transformation for Free Selective
to Monoid
.
module type CORE = sig ... end
The Free selective
API without the Preface_specs.Selective
API.
module type API = sig ... end
The complete interface of a Free selective
.