new(?enclosing:Environment)
finalenclosing:Null<Environment>
ancestor(distance:Int):Environment
assign(name:Token, value:Any):Void
assignAt(distance:Int, name:Token, value:Any):Void
define(name:String, value:Any):Void
get(name:Token):Null<Any>
getAt(distance:Int, name:String):Null<Null<Any>>