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 <[email protected]> > 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 _______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
