如果轉換後的Monad是一個實例,我想讓我的monad變換器成爲MonadError
的一個實例。基本上,我想我的變壓器表現爲內置變壓器做,例如有一個MonadError
實例StateT
:製作一個MonadError實例的自定義monad變換器
MonadError e m => MonadError e (StateT s m)
我試着這樣做:
instance MonadError e m => MonadError e (MyMonadT m)
但GHC開始抱怨無法判定實例,顯然MTL庫只是啓用不可判定的實例,但有什麼辦法可以避免這種情況?或者在這種情況下,它不會導致任何問題?