public LexicalMap Extend(LambdaBase lambda) { return (lambda.CallsTheEnvironment() ? FirstClassLexicalMap.Make(this, lambda) : StaticLexicalMap.Make(this, lambda)); }
public LexicalBinding(LambdaBase binder, LexicalAddress address) { this.binder = binder; this.address = address; }
StaticLexicalMap(LexicalMap parent, LambdaBase lambda) : base(parent) { this.lambda = lambda; }
public static LexicalMap Make(LexicalMap parent, LambdaBase lambda) { return(new StaticLexicalMap(parent, lambda)); }
FirstClassLexicalMap(LexicalMap parent, LambdaBase lambda) : base(parent) { this.lambda = lambda; }