Applicative-wired monad pattern
Haskell Community [Unofficial]
February 25, 2026
By convenience. The free’s Ap gives you a Functor instance for any f that doesn’t have one (my GADT Spec type doesn’t), and free’s Free wants something that’s an instance of Functor. I suppose a freer monad would do the same trick that Ap is doing for me. But I think overall these are implementation details.
Discussion in the ATmosphere