public override BaseStatement Reduce(Enviroment env) { if (Value.Reducible) { return(new Define(Name, Value.Reduce(env))); } if (env.ContainsKey(Name)) { return(new Throw(new TypeError($"Identifier \"{Name}\" has already been declared"))); } env.Add(Name, Value); return(new DoNothing()); }