anchor.diff:    }
   
     /**
  -   * Hide all of the given names by removing them from the given collection of defined names.
  -   *
  -   * @param definedNames the names that were defined before this operation
  -   * @param hiddenNames the names to be hidden
  -   */
  -  void _hide(HashMap<String, Element> definedNames, List<String> hiddenNames) {
  +   * Return a new map of names which has all the names from [definedNames]
  +   * with exception of [hiddenNames].
  +   */
  +  Map<String, Element> _hide(
  +      HashMap<String, Element> definedNames, List<String> hiddenNames) {
  +    HashMap<String, Element> newNames =
  +        new HashMap<String, Element>.from(definedNames);
       for (String name in hiddenNames) {
  -      definedNames.remove(name);
  -      definedNames.remove("$name=");
  -    }
  -  }
  -
  -  /**
  -   * Show only the given names by removing all other names from the given collection of defined
  -   * names.
  -   *
  -   * @param definedNames the names that were defined before this operation
  -   * @param shownNames the names to be shown
  +      newNames.remove(name);
  +      newNames.remove("$name=");
  +    }
  +    return newNames;
  +  }
  +
  +  /**
  +   * Return a new map of names which has only [shownNames] from [definedNames].
      */
     HashMap<String, Element> _show(
         HashMap<String, Element> definedNames, List<String> shownNames) {
  
positive.code:       List<NamespaceCombinator> combinators) {
      for (NamespaceCombinator combinator in combinators) {
        if (combinator is HideElementCombinator) {
          _hide(definedNames, combinator.hiddenNames);
        } else if (combinator is ShowElementCombinator) {
          definedNames = _show(definedNames, combinator.shownNames);
        } else {
  
negative.code:    *
     * @return a table containing the same mappings as those defined by this namespace
     */
    Map<String, Element> get definedNames => _definedNames;
  
    /**
     * Return the element in this namespace that is available to the containing scope using the given
  