[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

Reply via email to