Thu Oct 20 13:50:41 EDT 2011


- Representing functions in nested let / letrec form is
  straightforward if the following limitations are kept in mind:

   * let can only bind primitive function calls (no call stack)

   * tail calls need to be calls to functions defined by letrec.

- Question: is absence of "return" a problem?  At first sight it
  doesn't seem so, as it can be implemented by a call to a function
  higher up the lexical ladder.

- Question: while this is enough to represent loops, there is still an
  open problem about how to represent array loads and stores.