summaryrefslogtreecommitdiff
path: root/testsuite/tests/deriving/should_fail/drvfail009.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/deriving/should_fail/drvfail009.hs')
-rw-r--r--testsuite/tests/deriving/should_fail/drvfail009.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/testsuite/tests/deriving/should_fail/drvfail009.hs b/testsuite/tests/deriving/should_fail/drvfail009.hs
new file mode 100644
index 0000000000..06155c38a1
--- /dev/null
+++ b/testsuite/tests/deriving/should_fail/drvfail009.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses #-}
+
+-- Various newtype-deriving failures
+
+module ShouldFail where
+
+
+class C a b
+
+newtype T1 = T1 Int deriving( C )
+ -- Wrong arity
+
+newtype T2 = T2 Int deriving( Monad )
+ -- Type constructor has wrong kind
+
+newtype T3 a = T3 Int deriving( Monad )
+ -- Rep type has wrong kind
+
+newtype T4 a = T4 (Either a a) deriving( Monad )
+ -- Eta fails