ghc: panic! (the 'impossible' happened)

Hello. Today I wrote a small program to experiment with the Applicative class. The program is supposed to use an "applicative reader", similar to a "monad reader", to evaluate arithmetic expressions. But when compiling the program with ghc-7.6.1, I get the following message: $ ghc --make applicative-eval [1 of 1] Compiling Main ( applicative-eval.hs, applicative-eval.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.6.1 for x86_64-unknown-linux): expectJust cpeBody:collect_args Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug If the line eval (Let s a b) = \m -> eval b ((s,eval a m):m) is commented out, the program compiles without problems. Is this a known issue with the compiler? The source code is attached. Romildo

You can avoid the error by replacing
eval :: Exp -> (->) Memory Integer
with
eval :: Exp -> Memory -> Integer
which should be the same, but apparently isn't internally in GHC. This is definitely a bug.
Sjoerd
On Oct 28, 2012, at 4:55 AM, José Romildo Malaquias
Hello.
Today I wrote a small program to experiment with the Applicative class. The program is supposed to use an "applicative reader", similar to a "monad reader", to evaluate arithmetic expressions.
But when compiling the program with ghc-7.6.1, I get the following message:
$ ghc --make applicative-eval [1 of 1] Compiling Main ( applicative-eval.hs, applicative-eval.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.6.1 for x86_64-unknown-linux): expectJust cpeBody:collect_args
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
If the line
eval (Let s a b) = \m -> eval b ((s,eval a m):m)
is commented out, the program compiles without problems.
Is this a known issue with the compiler?
The source code is attached.
Romildo
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

On Sun, Oct 28, 2012 at 12:46:28PM +0100, Sjoerd Visscher wrote:
You can avoid the error by replacing
eval :: Exp -> (->) Memory Integer
with
eval :: Exp -> Memory -> Integer
which should be the same, but apparently isn't internally in GHC. This is definitely a bug.
As I want the "reader applicative" to be explicit in the code, I have rewritten my code as type Reader r a = r -> a eval :: Exp -> Reader Memory Integer which also works. Partial application of the (->) type constructor also works: type Reader r = (->) r or type Reader = (->) But the following tiggers the bug: type Reader r a = (->) r a
On Oct 28, 2012, at 4:55 AM, José Romildo Malaquias
wrote: Today I wrote a small program to experiment with the Applicative class. The program is supposed to use an "applicative reader", similar to a "monad reader", to evaluate arithmetic expressions.
But when compiling the program with ghc-7.6.1, I get the following message:
$ ghc --make applicative-eval [1 of 1] Compiling Main ( applicative-eval.hs, applicative-eval.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.6.1 for x86_64-unknown-linux): expectJust cpeBody:collect_args
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
If the line
eval (Let s a b) = \m -> eval b ((s,eval a m):m)
is commented out, the program compiles without problems.
Is this a known issue with the compiler?
The source code is attached

Thanks. Certainly a bug. I've created a ticket http://hackage.haskell.org/trac/ghc/ticket/7372.
Turns out that it's fixed in HEAD already, and I *think* the fix is in http://hackage.haskell.org/trac/ghc/ticket/7312, which should get into 7.6.2.
Simon
| -----Original Message-----
| From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-
| bounces@haskell.org] On Behalf Of Sjoerd Visscher
| Sent: 28 October 2012 11:46
| To: José Romildo Malaquias
| Cc: glasgow-haskell-users@haskell.org
| Subject: Re: ghc: panic! (the 'impossible' happened)
|
| You can avoid the error by replacing
|
| eval :: Exp -> (->) Memory Integer
|
| with
|
| eval :: Exp -> Memory -> Integer
|
| which should be the same, but apparently isn't internally in GHC. This is definitely
| a bug.
|
| Sjoerd
|
| On Oct 28, 2012, at 4:55 AM, José Romildo Malaquias
participants (3)
-
José Romildo Malaquias
-
Simon Peyton-Jones
-
Sjoerd Visscher