Exposing newtype coercions to Haskell

Nicolas Frisby nicolas.frisby at gmail.com
Tue Jul 2 19:56:24 CEST 2013


This is an exciting effort! Just a quick reaction to Simon's comments on
CoreM.

On Tue, Jul 2, 2013 at 9:11 AM, Simon Peyton-Jones <simonpj at microsoft.com>wrote:

>  To your questions:
>
> **
>
> **·        **To do these kind of things, CoreM will need more reader
> stuff.  In particular:****
>
> **o   **The global TypeEnv****
>
> **o   **The GlobalRdrEnv
>
For my light experimentation, I have recovered these two values from the
ModGuts that all plugins receive. Hopefully someone will shout out if
there's pitfalls to avoid.

  * The mg_rdr_env field is of type GlobalRdrEnv.

  * compiler/main/GHC.hs defines a function compileCore with a local
definition that rebuilds a TypeEnv. I extracted this:

> \guts -> HscTypes.typeEnvFromEntities (CoreSyn.bindersOfBinds (mg_binds
guts))
>                                            (mg_tcs guts)
>                                            (mg_fam_insts guts)

and it has worked so far.

HTH and good luck!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130702/59fb697b/attachment.htm>


More information about the Glasgow-haskell-users mailing list