anchor.diff:    branch node.
     Finally, Leaf nodes can be dynamically controlled by the derived class from TTrie
     allowing for easy implementation of dictionaries using TTrie as a base.
  +
  +  IMPORTANT NOTE ON Delphi 2007:
  +
  +  Delphi 2007 compiler places the start of Int64 at a different address than
  +  the 32 bits counterpart on the union... Go figure.. FreePascal and higher
  +  versions of Delphi behave consistently placing all elements on the same
  +  starting address.
  +
  +  You will see in a few places "strange" IFDEFS VER180 to address this situation
   *)
   
   unit Trie;
  
positive.code: 
  const
    BitsPerByte                = 8;
    BitsForChildIndexPerBucket = 4;
    BucketMask                 = $F;
    MaxTrieDepth               = sizeof(Int64) * BitsPerByte div BitsForChildIndexPerBucket;
    ChildrenPerBucket          = BitsForChildIndexPerBucket * BitsForChildIndexPerBucket;
    TrieDepth16Bits            = (sizeof(Word) * BitsPerByte) div BitsForChildIndexPerBucket;
  
negative.code:   begin
      AIterator.ANodeStack[0] := @FRoot^.Base;
      {$IFDEF VER180}
      if ATrieDepth > TrieDepth32Bits then
        AIterator.LastResult64 := 0
      else AIterator.LastResult32 := 0;
  