anchor.diff:    }
   
     TMap<K, V> doDelete(K key, {bool missingOk: false}) {
  -    return _adjustRootAndReturn(_root._delete(owner, key, _reverseHash(key.hashCode), maxDepth, missingOk));
  +    return _adjustRootAndReturn(_root._delete(owner, key, _mangleHash(key.hashCode), maxDepth, missingOk));
     }
   
     TMap<K, V> doUpdate(K key, dynamic updateF) {
  
positive.code: 
    // method must be called only on top-level _Node
    V get(K key, [V notFound = _none]) {
      var val = _get(key, _reverseHash(key.hashCode), maxDepth);
      if(_isNone(val)){
        if (_isNone(notFound)) {
          _ThrowKeyError(key);
  
negative.code:   int get hashCode;
  
    _Node<K, V> _update(_Owner owner, K key, dynamic updateF){
      return _insertOneWith(owner, key, null, _mangleHash(key.hashCode), maxDepth, updateF);
    }
  
    PMap<K, V> update(K key, dynamic updateF) =>
      _insertOneWith(null, key, null, _mangleHash(key.hashCode), maxDepth, updateF);
  
    _Node<K, V> _assoc(_Owner owner, K key, V value) =>
        _insertOneWith(owner, key, value, _mangleHash(key.hashCode), maxDepth);
  
    PMap assoc(K key, V value) => _assoc(null, key, value);
  
    _Node<K, V> _delete(_Owner owner, K key, int hash, int depth, bool missingOk);
  
    PMap delete(K key, {bool missingOk: false}) => _delete(null, key, _mangleHash(key.hashCode), maxDepth, missingOk);
  
    bool operator ==(other) {
      if (other is! _Node) return false;
  