anchor.diff:    /// Extends [compound] using [extensions], and returns the contents of a
     /// [SelectorList].
     ///
  +  /// The [inOriginal] parameter indicates whether this is in an original
  +  /// complex selector, meaning that [compound] should not be trimmed out.
  +  ///
     /// If [replace] is `true`, this doesn't preserve the original selectors.
     List<ComplexSelector> _extendCompound(
         CompoundSelector compound,
         Map<SimpleSelector, Map<ComplexSelector, Extension>> extensions,
         List<CssMediaQuery> mediaQueryContext,
  -      {bool replace: false}) {
  +      {bool inOriginal,
  +      bool replace: false}) {
       // The complex selectors produced from each component of [compound].
       List<List<Extension>> options;
       for (var i = 0; i < compound.components.length; i++) {
  
positive.code:     }
      if (extended == null) return list;
  
      return new SelectorList(
          _trim(extended).where((complex) => complex != null));
    }
  
    /// Extends [complex] using [extensions], and returns the contents of a
  
negative.code:           .toList();
      });
  
      // If we're preserving the original selector, mark the first unification as
      // such so [_trim] doesn't get rid of it.
      var isOriginal = (ComplexSelector _) => false;
      if (inOriginal && !replace) {
        var original = unifiedPaths.first.first;
        isOriginal = (complex) => complex == original;
      }
  
      return _trim(unifiedPaths.where((complexes) => complexes != null).toList(),
          isOriginal);
    }
  
    Iterable<List<Extension>> _extendSimple(
  