Monomorphizing GHC Core?

Edward Kmett ekmett at
Thu Jun 19 20:22:44 UTC 2014

Might you have more success with a Reynolds style defunctionalization pass
for the polymorphic recursion you can't eliminate?

Then you wouldn't have to rule out things like

data Complete a = S (Complete (a,a)) | Z a

which don't pass that test.


On Thu, Jun 19, 2014 at 3:28 PM, Conal Elliott <conal at> wrote:

> Has anyone worked on a monomorphizing transformation for GHC Core? I
> understand that polymorphic recursion presents a challenge, and I do indeed
> want to work with polymorphic recursion but only on types for which the
> recursion bottoms out statically (i.e., each recursive call is on a smaller
> type). I'm aiming at writing high-level polymorphic code and generating
> monomorphic code on unboxed values. This work is part of a project for
> compiling Haskell to hardware, described on my blog (
> Thanks,  - Conal
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list