diff options
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/tc244.hs')
-rw-r--r-- | testsuite/tests/typecheck/should_compile/tc244.hs | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/testsuite/tests/typecheck/should_compile/tc244.hs b/testsuite/tests/typecheck/should_compile/tc244.hs index 4c5468809a..196f6e0990 100644 --- a/testsuite/tests/typecheck/should_compile/tc244.hs +++ b/testsuite/tests/typecheck/should_compile/tc244.hs @@ -1,30 +1,32 @@ -{-# LANGUAGE TypeFamilies, GADTs #-}
-
--- Tests record update in the presence of
--- existentials, GADTs, type families
-
-module Rec where
-
------------------ Existential
-data S a where
- S1 :: { fs1 :: a, fs2 :: b } -> S a
- S2 :: { fs1 :: a } -> S a
-
-updS s x = s { fs1=x }
-
------------------- GADT
-data T a b where
- T1 :: { ft1 :: a, ft2 :: c, ft3 :: d } -> T a Int
- T2 :: { ft1 :: a, ft3 :: c } -> T a Int
- T3 :: T Int b
-
-f :: T a1 b -> a2 -> T a2 b
-f x v = x { ft1 = v }
-
------------------- Type family
-data family R a
-data instance R (a,b) where
- R1 :: { fr1 :: a, fr2 :: b, fr3 :: c } -> R (a,b)
- R2 :: { fr1 :: a, fr3 :: c } -> R (a,b)
-
-updR r x = r { fr1=x }
+{-# LANGUAGE TypeFamilies, GADTs #-} + +-- Tests record update in the presence of +-- existentials, GADTs, type families + +module Rec where + +----------------- Existential +data S a where + S1 :: { fs1 :: a, fs2 :: b } -> S a + S2 :: { fs1 :: a } -> S a + +updS s x = s { fs1=x } + +{- +------------------ GADT +data T a b where + T1 :: { ft1 :: a, ft2 :: c, ft3 :: d } -> T a Int + T2 :: { ft1 :: a, ft3 :: c } -> T a Int + T3 :: T Int b + +f :: T a1 b -> a2 -> T a2 b +f x v = x { ft1 = v } + +------------------ Type family +data family R a +data instance R (a,b) where + R1 :: { fr1 :: a, fr2 :: b, fr3 :: c } -> R (a,b) + R2 :: { fr1 :: a, fr3 :: c } -> R (a,b) + +updR r x = r { fr1=x } +-} |