diff options
Diffstat (limited to 'testsuite/tests/gadt/CasePrune.hs')
-rw-r--r-- | testsuite/tests/gadt/CasePrune.hs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testsuite/tests/gadt/CasePrune.hs b/testsuite/tests/gadt/CasePrune.hs new file mode 100644 index 0000000000..4048c94c5f --- /dev/null +++ b/testsuite/tests/gadt/CasePrune.hs @@ -0,0 +1,28 @@ +{-# LANGUAGE GADTs, GeneralizedNewtypeDeriving #-} + +-- See Trac #1251 and the comments +-- Note [Pruning dead case alternatives] in types/Unify.lhs + +module Main( main ) where + +data T a where MkT :: T Int + +class C a where ic :: T a + +instance C Int where ic = MkT + +newtype A = MkA Int deriving( C ) + +-- axiom CoA : A ~ Int +-- Hence C Int ~ C A + +-- instance C A where +-- ic :: T A +-- ic = MkT + +icA = ic :: T A -- There are no (non-bot) values of this type + +main = print (icA `seq` "ok") + + + |