crash when zipping two lists of the same length...
I've personally not checked this against 6.6.1, but "mauke" on #haskell says the same crash and same line number appears in the crash report.
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.6
$ ghc -v --make Session.hs
Glasgow Haskell Compiler, Version 6.6, for Haskell 98, compiled by GHC version 6.6
Using package config file: /usr/lib/ghc-6.6/package.conf
hiding package hinstaller-2007.4.21 to avoid conflict with later version hinstaller-2007.4.24
wired-in package base mapped to base-2.0
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0
wired-in package template-haskell mapped to template-haskell-2.0
Hsc static flags: -static
*** Chasing dependencies:
Chasing modules from: Session.hs
Stable obj: []
Stable BCO: []
compile: input file Session.hs
Created temporary directory: /tmp/ghc4588_0
*** Checking old interface for main:Main:
[1 of 1] Compiling Main ( Session.hs, Session.o )
*** Parser:
*** Renamer/typechecker:
*** Desugar:
Result size = 379
*** Simplify:
*** Deleting temp files:
Deleting: /tmp/ghc4588_0/ghc4588_0.s
Warning: deleting non-existent /tmp/ghc4588_0/ghc4588_0.s
*** Deleting temp dirs:
Deleting: /tmp/ghc4588_0
ghc-6.6: panic! (the 'impossible' happened)
(GHC version 6.6 for x86_64-unknown-linux):
Pattern match failure in do expression at simplCore/Simplify.lhs:1540:8-21
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Now as the comments in the source say, it works fine if you replace newtype with data, and I am aware that there are differences in what they do, though I can never quite remember the fine details. So it's quite possibly my fault, but an error message other than a GHC crash would be nicer!