On 2 March 2015 at 09:18, Jordan W <jordojw@gmail.com> wrote:
I suspect #2 would benefit metaprogramming just as well as the `let ..
and ` example. With metaprogramming, where we wish to isolate the
environments of several bindings simultaneously, how does a *single*
one of these bindings opt into self-recursiveness without forcing the
others into self-recursiveness (and thus "polluting the environment")?

There's always this:

let x = 4
and y = 7
and factorial = let rec f n = if n = 0 then 1 else n * f (n - 1) in f
and z = 12
in
...