Free Applicative Functors

Paolo Capriotti,Ambrus Kaposi
DOI: https://doi.org/10.4204/EPTCS.153.2
2014-06-09
Abstract:Applicative functors are a generalisation of monads. Both allow the expression of effectful computations into an otherwise pure language, like Haskell. Applicative functors are to be preferred to monads when the structure of a computation is fixed a priori. That makes it possible to perform certain kinds of static analysis on applicative values. We define a notion of free applicative functor, prove that it satisfies the appropriate laws, and that the construction is left adjoint to a suitable forgetful functor. We show how free applicative functors can be used to implement embedded DSLs which can be statically analysed.
Programming Languages,Category Theory
What problem does this paper attempt to address?