The current implementation will create a class/object to hold "shared"
variables between methods and closures even when they are not really
"shared". Take the following example for instance:
def adder(amount as int):
return <value as int | return amount+value>
The compiler will create a shared state object to hold the amount
parameter even though it's never accessed outside the closure (and thus
not properly "shared").