anchor.diff:    void update(num dt) { }
   }
   
  -class System {
  +class System extends SafeListItem {
     ActorList list;
  -  num priority;
  -  
  -  System(Page page) {
  -    page.systems.add(this);
  -  }
  +  num priority = 0.0;
     
     bool isRelevant(Actor actor) { return false; }
     
  
positive.code:   }
  }
  
  class ActorList<T extends Actor> extends ListBase {
    
    ActorList(Page page) {
      page._lists.add(this);
    }
    
    List<T> _objs = new List<T>();
    List<T> _addList = new List<T>();
    Set<T> _removeList = new Set<T>();
    
    void add(T obj) => _addList.add(obj);
    
    bool remove(T obj) {
      _removeList.add(obj);
      return _objs.contains(obj);
    }
    
    int get length => _objs.length;
  
negative.code:     this._objs.length = l;
    }
    
    T operator [](int index) => _objs[index];
    void operator []=(int index, T value) {
      _objs[index] = value;
    }
    
    void _update() {
      _objs.removeWhere((T obj) => _removeList.contains(obj));
      _removeList.clear();
      _objs.addAll(_addList);
      _addList.clear();
      _objs.sort((T a, T b) => (a.priority - b.priority).sign);
    }
  }