anchor.diff:      FCount : Integer;
       function InternalFind(const Data; out ANode: PTrieLeafNode; out AChildIndex:
           Byte; LeafHasChildIndex: Boolean): Boolean;
  +    function GetBusyIndicator(ANode : PTrieBaseNode; BitFieldIndex : Byte) : Boolean; inline;
  +    procedure SetBusyIndicator(ANode : PTrieBaseNode; BitFieldIndex : Byte; Value : Boolean); inline;
       function GetChildIndex(ANode : PTrieBranchNode; BitFieldIndex : Byte) : Byte; inline;
       procedure SetChildIndex(ANode : PTrieBranchNode; BitFieldIndex, ChildIndex : Byte); {$IFDEF FPC} inline; {$ENDIF}
       function GetBitFieldIndex(const Data; Level : Byte) : Byte;
  
positive.code:               PackingNode := True;
                dec(AIterator.ANodeStack[AIterator.Level]^.ChildrenCount);
                SetBusyIndicator(AIterator.ANodeStack[AIterator.Level], BitFieldIndex, False);
                FreeTrieNode(@PTrieNodeArray(PTrieBranchNode(AIterator.ANodeStack[AIterator.Level])^.Children)^[ChildIndex * Integer(LeafSize)]^.Base, AIterator.Level + 1);
              end
              else { keep going, there's busy nodes on Children }
            else if PTrieNodeArray(PTrieBranchNode(AIterator.ANodeStack[AIterator.Level])^.Children)^[ChildIndex]^.Base.Busy = 0 then
  
negative.code:     destructor Destroy; override;
      procedure Clear; virtual;
      procedure InitIterator(out AIterator : TTrieIterator);
      procedure Pack; virtual;
      property Count : Integer read FCount;
      property Stats : TTrieStats read FStats;
    end;
  