summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/T4952.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/T4952.hs')
-rw-r--r--testsuite/tests/typecheck/should_compile/T4952.hs27
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