<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 22, 2014 at 2:18 PM, Paul Bone <span dir="ltr"><<a href="mailto:paul@bone.id.au" target="_blank">paul@bone.id.au</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Jan 22, 2014 at 02:01:30PM +1100, Mark Brown wrote:<br>
> Hi Paul,<br>
<div class="im">><br>
> ><br>
> > As mentioned above store(S) (like io) is special and supposed to never<br>
> > actually appear in generated code,<br>
><br>
> It's never *required* to appear, but it still does. If you pass IO to<br>
> list.foldl, for example, the implementation will copy around a piece<br>
> of garbage for you.<br>
<br>
</div>Okay, this is the most compelling reason as to why it's okay to represent<br>
variables of these types in programs, because it's easier with higher order<br>
code.</blockquote><div><br></div><div>s/higher order/polymorphic/ and it's essential for it to be ok, otherwise</div><div>you couldn't use instantiate polymorphic arguments with dummy types.</div><div><br></div><div>
Another place that dummy types "appear" is in foreign_procs.</div><div><br></div><div>Cheers,</div><div>Julien.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div></div></div>
</div>