http://hackage.haskell.org/package/free в Control.Monad.Free.Free
позволяет получить доступ к "свободной монаде" для любого заданного Functor
. Однако он не имеет экземпляра MonadFix
. Это потому, что такой экземпляр не может быть написан, или он просто оставлен?
Если такой экземпляр не может быть написан, почему бы и нет?