public override Thing Eval(ProgramRunner runner) { Thing evalRight; if (right.IsType(typeof(Function))) { evalRight = ((Function)right).Eval(runner); } else { evalRight = right; } runner.SetMemory(((Things.String)left).str, evalRight); return new Set(left, right); }