
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 https://github.com/conal/plugin-import-id . Help greatly appreciated. Thanks, - Conal

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:
http://code.ouroborus.net/repa/repa-head/repa-plugin/Data/Array/Repa/Plugin/...
Primitives export:
http://code.ouroborus.net/repa/repa-head/repa-series/Data/Array/Repa/Series/...
On Thu, May 30, 2013 at 7:37 AM, Conal Elliott
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 https://github.com/conal/plugin-import-id . Help greatly appreciated.
Thanks,
- Conal
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

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.
Simon
From: ghc-devs-bounces@haskell.org [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Amos Robinson
Sent: 29 May 2013 23:50
To: Conal Elliott
Cc: glasgow-haskell-users@haskell.org; ghc-devs@haskell.org
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:
http://code.ouroborus.net/repa/repa-head/repa-plugin/Data/Array/Repa/Plugin/...
Primitives export:
http://code.ouroborus.net/repa/repa-head/repa-series/Data/Array/Repa/Series/...
On Thu, May 30, 2013 at 7:37 AM, Conal Elliott
participants (3)
-
Amos Robinson
-
Conal Elliott
-
Simon Peyton-Jones