
#9946: Expose the source location of template-haskell Names -------------------------------------+------------------------------------- Reporter: gridaphobe | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by simonpj): An example is good, and I encouraged you to start with examples. But ultimately we need a complete specification that says what happens for every `Name`. There are lots of ways to generate a `Name` in TH, and you only give one. How about {{{ f :: Q Exp -> Q Exp f qe = do { Var x <- qe ; print (nameLoc x) ; [| blah |] } }}} For example I might call f with `f [| x |]`, or `f [| \x -> x |]`. Or you can use `newName` or `mkName` to create a `Name`. What locations would they have? Look at `data Name` and `NameFlavour` in `Language.Haskell.TH`. I guess that you ''might'' reasonably expect a location for a `NameG` and perhaps a `NameL`. But it's not clear that `nameLoc :: Name -> Maybe SrcLoc` will be useful to you. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9946#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler