on master help sign in
Allow building with mmorph-1.1.0 on GHC 8.0.1 and older
commit2acd5c6446e209b7362128b168844f7a86a1a18c authorRyan Scott <ryan.gl.scott@gmail.com> dateSun 21 May 2017, 19:18 (9 years ago) parentb683980
1 file changed+7−2
src/Ether/TaggedTrans.hs+7−2
src/Ether/TaggedTrans.hs+7−2
@@ -7,7 +7,7 @@ import Control.Monad (MonadPlus)
77import Control.Monad.Fix (MonadFix)
88import Control.Monad.Trans.Class (MonadTrans, lift)
99import Control.Monad.IO.Class (MonadIO)
10−import Control.Monad.Morph (MFunctor, MMonad)
10+import Control.Monad.Morph (MFunctor(..), MMonad)
1111import Control.Monad.Catch (MonadThrow, MonadCatch, MonadMask)
1212
1313import qualified Control.Monad.Base as MB
@@ -33,7 +33,7 @@ newtype TaggedTrans tag trans m a = TaggedTrans (trans m a)
3333 deriving
3434 ( Generic
3535 , Functor, Applicative, Alternative, Monad, MonadPlus
36− , MonadFix, MonadTrans, MonadIO, MFunctor, MMonad
36+ , MonadFix, MonadTrans, MonadIO, MMonad
3737 , MonadThrow, MonadCatch, MonadMask )
3838
3939type Pack tag trans m a = trans m a -> TaggedTrans tag trans m a
@@ -174,3 +174,8 @@ instance
174174 where
175175 throwError = lift . Mtl.throwError
176176 catchError = Lift.liftCatch Mtl.catchError
177+
178+-- NB: Don't use GeneralizedNewtypeDeriving to create this instance, as it will
179+-- trigger GHC Trac #11837 on GHC 8.0.1 and older.
180+instance MFunctor trans => MFunctor (TaggedTrans tag trans) where
181+ hoist f (TaggedTrans t) = TaggedTrans (hoist f t)