Generating fresh names in a source plugin

Simon Peyton Jones simon.peytonjones at gmail.com
Mon Aug 4 10:44:23 UTC 2025


What about calling this function?

GHC.Tc.Plugin.newUnique :: TcPluginM Unique

The module GHC.Tc.Plugin provides facilities to plugins.

More generally, here is the manual page for plugins
<https://ghc.gitlab.haskell.org/ghc/doc/users_guide/extending_ghc.html#compiler-plugins>.
Is it adequate?

I notice that

   - it mentions the module GHC.Plugins (but only in code fragments)
   - it does not mention GHC.Tc.Plugins; neither does GHC.Plugins re-export
   GHC.Tc.Plugins

It would be great if some plugin authors felt able to offer patches to
improve.  Maybe open a GHC ticket?

Simon



On Sat, 2 Aug 2025 at 14:16, Wolfgang Jeltsch <wolfgang at well-typed.com>
wrote:

> [Since it seems that `glasgow-haskell-users at haskell.org` is essentially
> an announcements-only mailing list these days, I’m re-sending my recent
> e-mail to that mailing list here.]
>
> Hello!
>
> I want to generate AST fragments in a source plugin, and for this I need
> to generate fresh (local) names. My current approach is to use
> `mkSystemName`, but it, like many of the other name-generating
> operations, needs a value of type `Unique`. How can I generate such
> values? It seems that the `Hsc` monad doesn’t carry a value of type
> `UniqueSupply` with it.
>
> All the best,
> Wolfgang
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20250804/072c28a1/attachment.html>


More information about the ghc-devs mailing list