Free monad considered harmful https://markkarpov.com/post/free-monad-considered-harmful.html
Excellent, pragmatic blog post discussing usage of free monads, performance, and when you can simply use typeclasses.
miniblog.
Related Posts
Dynamic Dispatch in Haskell, or: How Can I Make My Code Extendable? https://two-wrongs.com/dynamic-dispatch-in-haskell-how-to-make-code-extendable (typeclasses do not support static dispatch!)