public override IEnumerator <RST> Run(Sandbox sb) { if (sb.Objects[Name]?.Value is Subroutine sub) // Subroutine exists, simply add overload { sub.DefineOverload(Parameters, Body); } else // Create new subroutine object and add overload { var s = new Subroutine(Name); sb.Objects[Name] = new RantObject(s); s.DefineOverload(Parameters, Body); } yield break; }