anchor.diff:  }
   
   /// usually, we need to copy some arrays when associng. However, when working
  -/// with transients (and owners match), it is safe just to modify the array
  +/// with transients (and the owners match), it is safe just to modify the array
   _makeCopyIfNeeded(_Owner a, _Owner b, List c) {
     if(_ownerEquals(a, b))
       return c;
  
positive.code: 
    V _get(K key, int hash, int depth) {
      int f=0;
  //    for (int i=0; i<_kv.length; i+=21){
  //      if (_kv[i+2] < hash){
  //        f=i;
  //      }
  //    }
  //
  //    for (int i=f+recsize; i<_kv.length; i+=recsize) {
  //      var h = _kv[i+2];
  //      if (h == hash && _kv[i] == key) {
  //        return _kv[i+1];
  //      }
  //      if (h > hash) {
  //        return _none;
  //      }
  //    }
  //    return _none;
      int from = 0;
      int to = _kv.length ~/ recsize;
      while(to - from > binSearchThr){
  
negative.code: 
  part of persistent;
  
  
  // this turns out to be the fastest combination
  const branchingBits = 4;
  const maxDepth = 6;
  
  //const branchingBits = 3;
  //const maxDepth = 9;
  
  //const branchingBits = 5;
  //const maxDepth = 5;
  
  
  const branching = 1 << branchingBits;
  const branchingMask = (1 << branchingBits)-1;
  const allHashMask = (1 << (maxDepth+1) * branchingBits)-1;
  
  const leafSize = branching * 3;
  