#4491: dataToQa uses only unqualified names when converting values to their TH
representation.
---------------------------------+------------------------------------------
Reporter: gmainland | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Template Haskell | Version: 6.12.3
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
---------------------------------+------------------------------------------
Comment(by gmainland):
Sorry for the muddled terminology. When I wrote "resolved module name" I
meant the `moduleName` of the `Module` component of the `NameSort` of a
`Name` (whew...). An "unresolved module name" would be the `ModuleName`
component of a qualified `RdrName`. Perhaps "renamed module name" and
"qualifier" are better terms? What is the correct terminology?
Given an `x` that is an instance of `Data`, `(showConstr . toConstr) x` is
the (unqualified) name of the data constructor used to construct x and
`(tyconModule . dataTypeName . dataTypeOf) x` is the name of the module in
which the corresponding type constructor is defined. Both are (newtype'd)
strings. I would like to use these to get Template Haskell to create an
original name, not a qualified name. The module defining the constructor
may not be in scope, or it could be in scope but aliased due to an "as"
import, so creating a qualified name is not the right thing to do.
Two things that might get us where I want to be:
1. Add a constructor to `Language.Haskell.TH.Syntax.NameFlavour`, `NameO
ModName`, that represents an original name.
2. In GHC, have a way to convert a `ModuleName` to a `Module`, i.e., find
the package that defines the `ModuleName`.
Then when converting TH, GHC could apply (2) to (1) and use the `Orig`
data constructor to create a `RdrName`.
Wired-in names would still have to be handled separately (the attached
patch does this more-or-less correctly, I think).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4491#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs