TH scoping problem
In the HEAD, these modules:
module TH_scope where
import TH_scope_helper
x :: ()
x = ()
where hold = $( wibble [d| hold :: ()
hold = () |] )
module TH_scope_helper where
import Language.Haskell.TH
wibble :: Q [Dec] -> Q Exp
wibble _ = [| 'a' |]
give:
TH_scope.hs:8:31:
Misplaced type signature: hold :: ()
The type signature must be given where `hold' is declared
Renaming the outer hold
fixes it.
The 6.8 branch seems OK.
Trac metadata
Trac field | Value |
---|---|
Version | 6.9 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Template Haskell |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |