Module import and use in GHC plugin?

Simon Peyton-Jones simonpj at
Thu May 30 10:34:47 CEST 2013

Plugin support is not well documented, and could do with some love. If someone would like to take it up, I'm sure it could be improved a lot.


From: ghc-devs-bounces at [mailto:ghc-devs-bounces at] On Behalf Of Amos Robinson
Sent: 29 May 2013 23:50
To: Conal Elliott
Cc: glasgow-haskell-users at; ghc-devs at
Subject: Re: Module import and use in GHC plugin?

I'd love to know a nicer way to do this, but what Ben Lippmeier did as a workaround is require a binding

"repa_primitives = R.primitives"
where repa_primitives is a record with references to all the primitive types you need. It's not great, but it works.

Plugin code:

Primitives export:

On Thu, May 30, 2013 at 7:37 AM, Conal Elliott <conal at<mailto:conal at>> wrote:
In writing GHC plugins, how can I (a) add a module import (preferably qualified) and (b) make vars/ids for names imported from the newly imported module (to insert in the transformed Core code)?

If it's not possible to do what I want, I'd be willing to require an explicit import (say "import qualified Foo") in client code, as a temporary workaround.
So far I've been unable to import even from the base package. Maybe I'm missing something basic that you folks have learned.

My simple & unsuccessful attempt is at . Help greatly appreciated.


  - Conal

ghc-devs mailing list
ghc-devs at<mailto:ghc-devs at>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list