summaryrefslogtreecommitdiff
path: root/tests/examples/ghc86/GADT.hs
diff options
context:
space:
mode:
authorAlanZimmerman <>2018-07-11 21:23:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2018-07-11 21:23:00 (GMT)
commitacc46b7da4e695bf357c5fb5f311382686c1d105 (patch)
treebc910d39de1e7435ede8d8fbb6b8c28ac36f01c3 /tests/examples/ghc86/GADT.hs
parentb6934f22d6668ed1ee60bca7a5382e4288426984 (diff)
version 0.5.7.00.5.7.0
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