<div dir="ltr">Might you have more success with a Reynolds style defunctionalization pass for the polymorphic recursion you can't eliminate? <div><br></div><div>Then you wouldn't have to rule out things like<div><br>
</div><div><font face="courier new, monospace">data Complete a = S (Complete (a,a)) | Z a<br></font><div><br></div><div>which don't pass that test.</div><div><br></div><div>-Edward</div></div></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Jun 19, 2014 at 3:28 PM, Conal Elliott <span dir="ltr"><<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>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 (<a href="http://conal.net" target="_blank">http://conal.net</a>).<br>


<br></div>Thanks,  - Conal<br></div>
<br>_______________________________________________<br>
Glasgow-haskell-users mailing list<br>
<a href="mailto:Glasgow-haskell-users@haskell.org">Glasgow-haskell-users@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users" target="_blank">http://www.haskell.org/mailman/listinfo/glasgow-haskell-users</a><br>
<br></blockquote></div><br></div>