Preface_specs.Free_selectiveA 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 ... endThe natural transformation for Free Selective to Selective.
module type TO_MONOID = sig ... endThe natural transformation for Free Selective to Monoid.
module type CORE = sig ... endThe Free selective API without the Preface_specs.Selective API.
module type API = sig ... endThe complete interface of a Free selective.