package preface

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A Free monad allows you to build a Preface_specs.Monad from a given Preface_specs.Functor.

Such Preface_specs.Monad is equiped with two additional functions: one dedicated to the creation of a new data and another one for the effect handling.

Note about complexity

Although free constructs are elegant, they introduce an execution cost due to the recursive nature of defining the type of a Free Monad. There are cheaper encodings like Preface_specs.Freer_monad, which removes the requirement for the Free monad parameter to be a Preface_specs.Functor and therefore does not increase its complexity.

Structure anatomy

module type CORE = sig ... end

The Free Monad API without the Preface_specs.Monad API.

Complete API

module type API = sig ... end

The complete interface of a Free monad.