Ticket #3244: PanicRepro.hs

File PanicRepro.hs, 536 bytes (added by heatsink, 5 years ago)
Line 
1{-# OPTIONS_GHC -XTypeFamilies #-}
2module PanicRepro where
3
4-- Set up a type class with an associated type
5
6class Config s where type T s
7
8data X = UnusedXConstructor
9
10instance Config X where type T X = String
11
12-- Define two data constructors
13
14data Container s = Container (T s)
15
16data Action a = Action (IO a)
17
18-- Cause a compiler panic
19
20foo :: Action (Container X)
21foo =
22    let f _ = -- Note the constraint (String ~ T X) in definition of g.
23              let g = return (Container "")
24              in  Action g
25    in f ()
26     
27
28