Mark S. Miller writes:
>>* visitObjectExpr, visitPlumbingExpr: I find the definition of these nodes
>>to be disturbing in that they combine object definition with variable
>>binding. You already have a "define" primitive which should cover the
>>variable binding side of things. Maybe you still need primitives to cover
>>the object definition part of these (maybe not--again, I apologize for not
>>being sure enough of the sementics), but at least you could consolidate
>>the "define" part.
>
>[-] I have lost my faith in anonymous closures.
>I have made the name of the variable being defined part of the object
>expression, so that this object expression will know this name. The minor
>but pleasant user interface payoff: If the object does not provide its own
>printOn method, a Miranda method will be provided for it that will print
>using that name:
> ? define bletch {
> > //...
> > }
> # value: <bletch>
>
> ? define zorch := bletch
> # value: <bletch>
>
> ? zorch
> # value: <bletch>
-dan