anchor.diff:          begin
             if SmallestNode <> Node^.Right then
             begin
  +            // When the smallest node is any other node than the one on the immediate
  +            // right of the one being removed, we will copy the contents of the smallest
  +            // node to the actual node being "removed", adjust some pointers and really
  +            // remove the smalles node
               SmallestNodeParent^.Left := SmallestNode^.Right;
               Node^.KVP := SmallestNode^.KVP;
               Node^.Next := SmallestNode^.Next;
  
positive.code:   begin
      ChildIndex := Node^.Base.ChildrenCount;
      inc(Node^.Base.ChildrenCount);
      SetChildIndex(PTrieBranchNode(Node), GetBitFieldIndex(Hash, TrieDepth - 1), ChildIndex);
      ReallocMem(Node^.Children, Node^.Base.ChildrenCount * sizeof(Pointer));
      PHashTrieNodeArray(Node^.Children)^[ChildIndex] := nil;
  
negative.code:     begin
        ParentNodePtr := @Node^.Next;
        Node := Node^.Next;
        Assert(Node^.Left = nil, 'Node linked list present. Node^.Left must be nil');
        Assert(Node^.Right = nil, 'Node linked list present. Node^.Right must be nil');
      end;
    end;
  end;
  