Quiero hacer que mi transformador de mónada sea una instancia de MonadError
si la mónada transformada es una instancia. Básicamente quiero que mi transformador de comportarse como los transformadores incorporados hacen, por ejemplo, hay una instancia MonadError
para StateT
:Hacer un transformador de mónada personalizado una instancia de MonadError
MonadError e m => MonadError e (StateT s m)
Intenté hacer esto:
instance MonadError e m => MonadError e (MyMonadT m)
Pero GHC comenzó a quejarse de indecidible instancias, al parecer, la biblioteca MTL solo habilita instancias indecidibles, pero ¿hay alguna forma de evitar eso? ¿O está bien en este caso y no causará ningún problema?