anchor.diff:    void updateDependencies(Element dependent, Object aspect) {
       final dependencies = getDependencies(dependent);
       // once subscribed to everything once, it always stays subscribed to everything
  -    if (dependencies != null && dependencies is! _SelectorDependency<T>) {
  +    if (dependencies != null && dependencies is! List<_SelectorAspect<T>>) {
         return;
       }
   
       if (aspect is _SelectorAspect<T>) {
  -      final selectorDependency = (dependencies ?? _SelectorDependency<T>()) as _SelectorDependency<T>;
  +      final selectorDependency = (dependencies ?? <_SelectorAspect<T>>[]) as List<_SelectorAspect<T>>;
         if (_shouldClearSelectors) {
           _shouldClearSelectors = false;
  -        selectorDependency.selectors.clear();
  +        selectorDependency.clear();
         }
         if (_shouldClearMutationScheduled == false) {
           _shouldClearMutationScheduled = true;
  
positive.code:           _shouldClearSelectors = true;
          });
        }
        selectorDependency.selectors.add(aspect);
        setDependencies(dependent, selectorDependency);
      } else {
        // subscribes to everything
  
negative.code: }
  
  typedef _SelectorAspect<T> = bool Function(T value);
  
  bool _debugCanSelect = true;
  
  