Scoping error in Template Haskell antiquotations
Related to #5375 (closed), #5037 (closed). When compiling and running the following:
{-# LANGUAGE TemplateHaskell #-}
import Language.Haskell.TH
$( [d| g = 0
h = $( return $ LamE [VarP (mkName "g")] (VarE 'g) ) |] )
main = print (h 1)
the splice should be
g' = 0
h = \g -> g'
and so the program should print 0 at runtime. Instead, it prints 1.
This is with both ghc-7.0.3 and ghc-7.3.20110803.
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.4 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |