Comparison of prompt and free monads.
The prompt monad is a free monad but with a more convenient programming interface in the context of designing EDSLs. It also predates free monads as far as the Haskell community is concerned.
Type names refer to the
free packages on Hackage.
Prompt, one defines an API GADT
API r where each constructor takes the parameters of an API function as arguments, and specifies its result type in