diff options
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/T4952.hs')
-rw-r--r-- | testsuite/tests/typecheck/should_compile/T4952.hs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_compile/T4952.hs b/testsuite/tests/typecheck/should_compile/T4952.hs new file mode 100644 index 0000000000..b0d2fba794 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/T4952.hs @@ -0,0 +1,27 @@ +{-# LANGUAGE UndecidableInstances, + MultiParamTypeClasses, + KindSignatures, + FlexibleInstances, + FunctionalDependencies #-} + +module Storage.Hashed.Monad () where + +class Monad m => TreeRO m where + withDirectory :: (MonadError e m) => Int -> m a -> m a + expandTo :: (MonadError e m) => Int -> m Int + +instance (Monad m, MonadError e m) => TreeRO (M m) where + expandTo = undefined + withDirectory dir _ = do + _ <- expandTo dir + undefined + +data M (m :: * -> *) a + +instance Monad m => Monad (M m) where + (>>=) = undefined + return = undefined + +instance MonadError e m => MonadError e (M m) + +class Monad m => MonadError e m | m -> e |