public Env(Env outer) { this.outer = outer; }
void ReplaceCurrent(Exp exp, Env env = null) { current.ready = false; current.exp = exp.Clone(); current.env = env ?? current.env; }
Env() { outer = null; }
Exp CreateProcedure(Cell body, Env env, List <string> argNames = null, string variadicName = null) { return(new SchemeProcedure(body, env, argNames, variadicName)); }