Hello,
No dice. Using cvs head from 12/31, I get the same behavior, (plus a
new bug). Using the same test as before (after updating the import
line):
*Main runQ [d| instance Test (a,b) |] = putStrLn . show
ghc-6.3: panic! (the `impossible' happened, GHC version 6.3):
Failed binder lookup: a{tv} {- tv a2jx -}
Please report it as a compiler bug to [EMAIL PROTECTED],
or http://sourceforge.net/projects/ghc/.
Also, a new bug has appeared (then again, it is cvs head) -- If I
start ghci, and then do this:
Prelude let n = 1
Prelude n
*** Exception: basicTypes/Var.lhs:226:32-58: Non-exhaustive patterns in record update
Prelude b
*** Exception: basicTypes/Var.lhs:226:32-58: Non-exhaustive patterns in record update
Prelude a
*** Exception: basicTypes/Var.lhs:226:32-58: Non-exhaustive patterns in record update
Prelude 3 + 4
*** Exception: basicTypes/Var.lhs:226:32-58: Non-exhaustive patterns in record update
Or similarily:
*Main runQ [d| instance Test (Int,Int) |] = putStrLn . show
Loading package haskell98 ... linking ... done.
Loading package haskell-src ... linking ... done.
[InstanceD [] (AppT (ConT Main.Test) (AppT (AppT (TupleT 2) (ConT GHC.Base.Int)) (ConT
GHC.Base.Int))) []]
*Main runQ [d| instance Test (a,b) |] = putStrLn . show
*** Exception: basicTypes/Var.lhs:226:32-58: Non-exhaustive patterns in record update
Jeremy Shaw.
At Wed, 31 Dec 2003 08:11:47 -,
Simon Peyton-Jones wrote:
In GHC 6.2, Template Haskell has various bugs. I think they are all
fixed in the HEAD, so you can either build from source or grab a
development snapshot from the GHC site.
The HEAD version of TH has a slightly different programming interface
too -- see
http://research.microsoft.com/~simonpj/tmp/notes2.ps
Simon
| -Original Message-
| From: [EMAIL PROTECTED]
[mailto:glasgow-haskell-users-
| [EMAIL PROTECTED] On Behalf Of Jeremy Shaw
| Sent: 31 December 2003 02:19
| To: [EMAIL PROTECTED]
| Subject: classes and template haskell (bug?)
|
| Hello,
|
| I have loaded the following from a file into ghci 6.2:
|
| module Main where
|
| import Language.Haskell.THSyntax
|
| class Test a where
| test :: a - a
|
| instance Test (a,b,c) where
| test x = x
|
| main = putStrLn Hello, World!
|
| This works for me:
|
| *Main runQ [d| instance Test (Int,Int) |] = putStrLn . show
| [InstanceD [] (AppT (ConT Main:Test) (AppT (AppT (TupleT 2) (ConT
GHC.Base:Int)) (ConT
| GHC.Base:Int))) []]
|
| But this doesn't:
|
| *Main runQ [d| instance Test (a,b) |] = putStrLn . show
| ghc-6.2: panic! (the `impossible' happened, GHC version 6.2):
| Failed binder lookup: a {- tv a20x -}
|
| Please report it as a compiler bug to
[EMAIL PROTECTED],
| or http://sourceforge.net/projects/ghc/.
|
|
| Am I doing something wrong, or is this a bug?
|
| Thanks!
| Jeremy Shaw.
| ___
| Glasgow-haskell-users mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users