so I guess I see why they went this route,
fwiw i'm going to use a silly syntax of:
{DECLS} in {DECLS} vs ({DECLS} in EXPR)

the latter doesn't really relate to sexpr function invocation, just a
means of declaring the statement returns an expression, going to use
this reduced syntax simply as a way of easily expressing the linearity
of scope and its relation to indentation...

{bar = 0} in {fun baz() = bar + 1}
which is basically equivalent to the 'local DECL in DECL end' syntax of sml...
I suppose they avoid the fact that the exported declaration is inner
to the local one...

adopting something like Haskell's where somewhat alleviates this we get:
{fun baz() = bar + 1} where {bar = 0}

but it has the odd behavior that {bar = 0} is done not within the
scope of fun baz(), but the parent scope..

altogether this seems somewhat like a lose-lose-lose situation, but I
think I prefer something to the effect of haskell's where since it
preserves top-levelness along with sane let scoping, at the expense of
odd local scoping...
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to