[Andrew: another place I currently omit types.]
OK, this is a real bug, I fear. When the compiler puts a case
alternative into an interface file, it omits the types on the binders:
case x of
(:) a b -> ...
The type checker re-infers the types for a, b. This makes interface
files a lot smaller.
The same happens for existential type variables:
case x of
C @ a b -> ...rhs...
Alas, while this works when *reading* interface files, the *printer*
for interface files puts the kinds in:
case x of
C @ a :: (*->*) b -> ...rhs...
and that's the bug.
There's a simple workaround:
- don't export unfoldings for the offending module (GuardedChannels).
- or edit the .hi file by hand to remove the offending kind signature.
(I did this and it worked fine)
Drat.
Thanks for reporting it.
Simon
| -----Original Message-----
| From: George Russell [mailto:[EMAIL PROTECTED]]
| Sent: 22 February 2001 11:53
| To: [EMAIL PROTECTED]
| Subject: panic in 4.08.2.
|
|
| Compiling the above Haskell file with ghc4.08.2
| (Sparc-Solaris) and the hi files in the attached
| archive, options:
| -c -package concurrent -package data -package net -package
| posix -package text -package util -package lang
| -fglasgow-exts -fallow-overlapping-instances
| -fallow-undecidable-instances -cpp -hi-diffs -H25M -K5M
| -recomp -fwarn-deprecations -O -O2-for-C
|
| I get the following message:
|
| panic! (the `impossible' happened):
| IdInfo parse failed
| zdwzdfHasSendGuardedChannel
| ./GuardedChannels.hi:58 Interface file parse error; on
| input ` :: '
|
| Please report it as a compiler bug to
| [EMAIL PROTECTED]
|
|
| SIGH. This is inconvenient. How do I work around it until ghc4.08.3
| comes out?
|
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs