summaryrefslogtreecommitdiff
path: root/testsuite/tests/deriving/should_compile/T3965.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/deriving/should_compile/T3965.hs')
-rw-r--r--testsuite/tests/deriving/should_compile/T3965.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/testsuite/tests/deriving/should_compile/T3965.hs b/testsuite/tests/deriving/should_compile/T3965.hs
new file mode 100644
index 0000000000..99217acba6
--- /dev/null
+++ b/testsuite/tests/deriving/should_compile/T3965.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, StandaloneDeriving, TypeOperators, UndecidableInstances #-}
+module T3965 where
+
+import Data.Data
+
+data T f e = Inl (f e) deriving (Data, Typeable, Eq)
+
+newtype Expr f = In (f (Expr f)) deriving Typeable
+
+deriving instance (Typeable a, Data (a (Expr a))) => Data (Expr a)
+
+data Var e = Var String deriving (Data, Eq, Typeable)
+
+data Domain e g = Domain
+ (Expr (T Var))
+ deriving (Data, Typeable)
+
+