[Haskell-cafe] Store type-class polymorphic values generically
Fri Oct 4 10:40:41 UTC 2013
| However, I want to write this as a core-to-core
| translation as a ghc-plugin. I want the definition go = putStrLn "Hello
| World!" to be translated to what I wrote above. Core cannot generate new
| names to be exported from a module, so go_ is now gone.
Wait... what do you mean "Core cannot generate new names to be exported". I think a core-to-core plugin can certainly generate new top-level function definitions.
Maybe you mean that you want your plugin to transform
module M( f ) where
f = e
module M( f_ ) where
f_ = ...f...
f = e
That seems pretty drastic, because now the programmer's API for the module has changed. Are you sure you don't want to do this
module M( f ) wehre
f_ = e
f = ...f_...
by renaming the existing f with some local name.
I don't like all this unsafe hackery!
More information about the Haskell-Cafe