Ticket #1323: Session.hs

File Session.hs, 1.2 KB (added by matthew@…, 7 years ago)

The crashing source code.

Line 
1{-# OPTIONS -fglasgow-exts #-}
2
3module Main where
4
5data Zero = Zero
6            deriving (Show)
7
8-- change this newtype to a data and all's well
9-- and it's not like the class restriction actually restricts
10-- the type rather than the constructor
11newtype (TyNum p) => Succ p = Succ p
12    deriving (Show)
13
14class TyNum a where
15instance TyNum Zero where
16instance (TyNum p) => TyNum (Succ p) where
17
18data List :: * -> * -> * where
19             Nil :: List a Zero
20             Cons :: (TyNum p) => a -> List a p -> List a (Succ p)
21
22instance (Show a) => Show (List a l) where
23    show Nil = "Nil"
24    show (Cons a t) = "Cons " ++ (show a) ++ " (" ++ (show t) ++ ")"
25
26zipL :: List a l -> List b l -> List (a, b) l
27zipL Nil Nil = Nil -- this line is fine
28zipL (Cons l ls) (Cons r rs) = Cons (l,r) (zipL ls rs) -- this line blows up
29
30l1 = Cons 5 (Cons 3 Nil)
31l2 = Cons True (Cons False Nil)
32
33main = print $ zipL l1 l2
34
35{-
36$ ghc --make Test.hs
37[1 of 1] Compiling Main             ( Test.hs, Test.o )
38ghc-6.6: panic! (the 'impossible' happened)
39  (GHC version 6.6 for x86_64-unknown-linux):
40        Pattern match failure in do expression at simplCore/Simplify.lhs:1540:8-21
41
42Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
43-}
44