anchor.diff:  
     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){
  
positive.code: 
  part of persistent;
  
  final _random = new Random();
  
  
  //const branching = 8;
  //const branchingBits = 3;
  //const branchingMask = 0x7;
  
  const branching = 16;
  const branchingBits = 4;
  const branchingMask = 0xf;
  
  //const branching = 32;
  //const branchingBits = 5;
  //const branchingMask = 0x1f;
  
  const maxDepth = 7;
  const allHashMask = (1 << (maxDepth+1) * branchingBits)-1;
  
  const leafSize = branching * 3;
  
negative.code:   _Node<K, V> _insertOneWith(_Owner owner, key, val, hash, int depth, [update]) {
      List nkv = _makeCopyIfNeeded(owner, this._owner, _kv);
      _insert(nkv, key, val, hash, update);
      return _polish(owner, depth, nkv);
    }
  
    _Node<K, V> _delete(_Owner owner, K key, int hash, int depth, bool missingOk) {
  