<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 19, 2013 at 2:31 AM, Brent Yorgey <span dir="ltr">&lt;<a href="mailto:byorgey@seas.upenn.edu" target="_blank">byorgey@seas.upenn.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id=":12u" style="overflow:hidden">The distinction is simply this: given a definition<br>
<br>
  foo = ...<br>
<br>
does foo show up in the ..., i.e. on the right-hand-side of its own<br>
definition, or not?  If foo shows up in its own definition, it is<br>
recursive.  If not, it is not recursive.  </div></blockquote></div><br><div class="gmail_extra">This isn&#39;t a satisfactory answer &#39;simply&#39; (there&#39;s that word again!) because it makes a hash out of equational reasoning:<br>


<br></div><div class="gmail_extra">fix f = f (fix f) -- recursive<br></div><div class="gmail_extra">fix2 = fix -- no longer recursive!<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">thereby making the very concept itself ontologically suspect. Which of course, it shouldn&#39;t be.<br>

</div><div class="gmail_extra"><br></div>The
 stackoverflow question asks about &#39;representation&#39;, which, for the purpose of discussion, 
posits an actual graph-reduction machine.<br><br>The current answers give GHC Core in gory detail. If that works for you, great! <br><br>Otherwise, I recommend the self-guided tutorial on graph reduction in PJ &amp; Lester:<br>

<br><a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/">http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/</a><br></div><div class="gmail_extra"><br clear="all">

<div>-- Kim-Ee</div>
</div></div>