Free Applicative Functor
Applicative functors are a generalization of monads allowing expressing effectful computations in a pure functional way.
Free Applicative functor is the counterpart of FreeMonads for Applicative. Free Monads is a construction that is left adjoint to a forgetful functor from the category of Monads Deeper explanations can be found in this paper Free Applicative Functors by Paolo Capriotti