Accessing the "original" names via GHC API
Ranjit Jhala
jhala at cs.ucsd.edu
Wed Jan 25 03:00:05 UTC 2017
Dear Joachim,
You are right -- some more context.
Given
tc :: TyCon
m :: ModName
env :: HscEnv
I want to get a
s :: String
such that _in_ the context given by `m` and `env` I can resolve `s` to get
back the original `TyCon`, e.g. something like
L _ rn <- hscParseIdentifier env s
name <- lookupRdrName env modName rn
would then return `name :: Name` which corresponds to the original `TyCon`.
That is, the goal is _not_ pretty printing, but "serialization" into a
String
representation that lets me recover the original `TyCon` later.
(Consequently, `"Data.Set.Base.Set"` doesn't work as the `Data.Set.Base`
module is hidden and hence, when I try the above, GHC complains that the
name is not in scope.
Does that clarify the problem?
Thanks!
- Ranjit.
On Tue, Jan 24, 2017 at 6:11 PM, Joachim Breitner <mail at joachim-breitner.de>
wrote:
> Hi Ranjit,
>
> Am Dienstag, den 24.01.2017, 16:09 -0800 schrieb Ranjit Jhala:
> > My goal is to write a function
> >
> > tyconString :: TyCon -> String
> >
> > (perhaps with extra parameters) such that given the
> > `TyCon` corresponding to `Set`, I get back the "original"
> > name `S.Set`, or even `Data.Set.Set`.
> >
> > Everything I've tried, which is fiddling with different variants of
> > `PprStyle`, end up giving me `Data.Set.Base.Set`
> >
> > Does anyone have a suggestion for how to proceed?
>
> in a way, `Data.Set.Base.Set` is the “original”, proper name for Set,
> everything else is just a local view on the name.
>
> So, are you maybe looking for a way to get the “most natural way” to
> print a name in a certain module context?
>
> This functionality must exist somewhere, as ghci is printing out errors
> this way. But it certainly would require an additional argument to
> tyconString, to specify in which module to print the name.
>
> Greetings,
> Joachim
>
>
> --
> Joachim “nomeata” Breitner
> mail at joachim-breitner.de • https://www.joachim-breitner.de/
> XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
> Debian Developer: nomeata at debian.org
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/glasgow-haskell-users/attachments/20170124/b154658a/attachment.html>
More information about the Glasgow-haskell-users
mailing list