--- /dev/null
+module ShouldFail where
+
+data Bar = Bar { flag :: Bool } deriving( Show )
+
+data State = State { bar :: Bar, baz :: Float }
+
+display :: State -> IO ()
+display (State{ bar = Bar { flag = f, baz = b }}) = print (f,b)
+
+-- Typo! The line above should better be:
+-- display (State{ bar = Bar { flag = f }, baz = b }) = print (f,b)
+
+-- GHC 4.04 (as released) crashed with
+-- panic! (the `impossible' happened): tcLookupValue: b{-r4n-}
+-- Bug reported by Sven Panne
+
--- /dev/null
+
+tcfail083.hs:8:
+ Constructor `Bar' does not have field `baz'
+ In the pattern: Bar {flag = f, baz = b}
+ In the pattern: State {bar = Bar {flag = f, baz = b}}
+ In an equation for function `display':
+ display (State {bar = Bar {flag = f, baz = b}}) = print (f, b)
+
+Compilation had errors
+