Initial test for Trac #4175
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 15 Mar 2013 15:53:34 +0000 (15:53 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 15 Mar 2013 15:53:34 +0000 (15:53 +0000)
testsuite/tests/ghci/scripts/T4175.hs [new file with mode: 0644]
testsuite/tests/ghci/scripts/T4175.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/T4175.stdout [new file with mode: 0644]

diff --git a/testsuite/tests/ghci/scripts/T4175.hs b/testsuite/tests/ghci/scripts/T4175.hs
new file mode 100644 (file)
index 0000000..69ff79f
--- /dev/null
@@ -0,0 +1,24 @@
+{-# LANGUAGE TypeFamilies #-}
+module T4175 where
+
+type family A a b
+type instance A Int Int = ()
+type instance A (Maybe a) a = a
+
+data family B a
+data instance B () = MkB
+
+class C a where
+    type D a b
+
+instance C Int where
+    type D Int () = String
+
+instance C () where
+    type D () () = Bool
+
+type family E a
+
+type instance where
+    E ()  = Bool
+    E Int = String
\ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/T4175.script b/testsuite/tests/ghci/scripts/T4175.script
new file mode 100644 (file)
index 0000000..27410d7
--- /dev/null
@@ -0,0 +1,8 @@
+:l T4175.hs
+:i A
+:i B
+:i D
+:i E
+:i ()
+:i Maybe
+:i Int
diff --git a/testsuite/tests/ghci/scripts/T4175.stdout b/testsuite/tests/ghci/scripts/T4175.stdout
new file mode 100644 (file)
index 0000000..bfbfc87
--- /dev/null
@@ -0,0 +1,52 @@
+type family A a b :: *         -- Defined at T4175.hs:4:13\r
+type instance A (Maybe a) a -- Defined at T4175.hs:6:15\r
+type instance A Int Int -- Defined at T4175.hs:5:15\r
+data family B a        -- Defined at T4175.hs:8:13\r
+data instance B () -- Defined at T4175.hs:9:15\r
+class C a where\r
+  type family D a b :: *\r
+       -- Defined at T4175.hs:12:10\r
+type D () () -- Defined at T4175.hs:18:10\r
+type D Int () -- Defined at T4175.hs:15:10\r
+type family E a :: *   -- Defined at T4175.hs:20:13\r
+type instance where\r
+  E () -- Defined at T4175.hs:23:5\r
+  E Int -- Defined at T4175.hs:24:5\r
+data () = ()   -- Defined in ‛GHC.Tuple’\r
+instance C () -- Defined at T4175.hs:17:10\r
+instance Bounded () -- Defined in ‛GHC.Enum’\r
+instance Enum () -- Defined in ‛GHC.Enum’\r
+instance Eq () -- Defined in ‛GHC.Classes’\r
+instance Ord () -- Defined in ‛GHC.Classes’\r
+instance Read () -- Defined in ‛GHC.Read’\r
+instance Show () -- Defined in ‛GHC.Show’\r
+type instance where\r
+  E () -- Defined at T4175.hs:23:5\r
+  E Int -- Defined at T4175.hs:24:5\r
+type D () () -- Defined at T4175.hs:18:10\r
+type D Int () -- Defined at T4175.hs:15:10\r
+data instance B () -- Defined at T4175.hs:9:15\r
+data Maybe a = Nothing | Just a        -- Defined in ‛Data.Maybe’\r
+instance Eq a => Eq (Maybe a) -- Defined in ‛Data.Maybe’\r
+instance Monad Maybe -- Defined in ‛Data.Maybe’\r
+instance Functor Maybe -- Defined in ‛Data.Maybe’\r
+instance Ord a => Ord (Maybe a) -- Defined in ‛Data.Maybe’\r
+instance Read a => Read (Maybe a) -- Defined in ‛GHC.Read’\r
+instance Show a => Show (Maybe a) -- Defined in ‛GHC.Show’\r
+type instance A (Maybe a) a -- Defined at T4175.hs:6:15\r
+data Int = GHC.Types.I# GHC.Prim.Int#  -- Defined in ‛GHC.Types’\r
+instance C Int -- Defined at T4175.hs:14:10\r
+instance Bounded Int -- Defined in ‛GHC.Enum’\r
+instance Enum Int -- Defined in ‛GHC.Enum’\r
+instance Eq Int -- Defined in ‛GHC.Classes’\r
+instance Integral Int -- Defined in ‛GHC.Real’\r
+instance Num Int -- Defined in ‛GHC.Num’\r
+instance Ord Int -- Defined in ‛GHC.Classes’\r
+instance Read Int -- Defined in ‛GHC.Read’\r
+instance Real Int -- Defined in ‛GHC.Real’\r
+instance Show Int -- Defined in ‛GHC.Show’\r
+type instance where\r
+  E () -- Defined at T4175.hs:23:5\r
+  E Int -- Defined at T4175.hs:24:5\r
+type D Int () -- Defined at T4175.hs:15:10\r
+type instance A Int Int -- Defined at T4175.hs:5:15\r