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@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@joachim-breitner.dehttps://www.joachim-breitner.de/
  XMPP: nomeata@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
  Debian Developer: nomeata@debian.org

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users