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.