summaryrefslogtreecommitdiff
path: root/tests/examples/ghc86/GADT.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examples/ghc86/GADT.hs')
-rw-r--r--tests/examples/ghc86/GADT.hs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/examples/ghc86/GADT.hs b/tests/examples/ghc86/GADT.hs
new file mode 100644
index 0000000..521f803
--- /dev/null
+++ b/tests/examples/ghc86/GADT.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE RankNTypes #-}
+
+data Empty
+data NonEmpty
+
+data SafeList x y where
+ Nil :: SafeList x Empty
+ Cons:: Eq x => x -> SafeList x y -> SafeList x NonEmpty
+ One :: Eq x => x -> SafeList x Empty -> SafeList x NonEmpty
+
+safeHead :: SafeList x NonEmpty -> x
+safeHead (Cons x _) = x
+
+foo = Cons 3 (Cons 6 (Cons 9 Nil))
+
+
+data Dict x where
+ DictN :: Num x => x -> Dict x
+ DictE :: Eq x => x -> Dict x
+
+data Exist where
+ Exist :: forall a. a -> Exist