anchor.diff:      member this.ComponentNames = hashSetPlus HashIdentity.Structural stores.Keys
       member this.Terms = terms
   
  -    member this.Register (comps : Dictionary<string, obj>) =
  +    member private this.Grow () =
  +        for storeEntry in stores do
  +            storeEntry.Value.Grow ()
  +
  +    member private this.AllocIndex =
           if freeList.Count > 0 then
               let index = Seq.head freeList
               freeList.Remove index |> ignore<bool>
  -            for compEntry in comps do
  -                stores.[compEntry.Key].SetItem index compEntry.Value
               index
           else
               match Seq.tryHead stores with
               | Some headStoreEntry ->
                   let index = freeIndex
  -                if index = headStoreEntry.Value.Length then
  -                    for storeEntry in stores do
  -                        storeEntry.Value.Grow ()
  -                for compEntry in comps do
  -                    stores.[compEntry.Key].SetItem index compEntry.Value
  +                if index = headStoreEntry.Value.Length then this.Grow ()
                   freeIndex <- inc freeIndex
                   index
               | None ->
  
positive.code:         comps
  
      member this.Read count (stream : FileStream) =
          for storeEntry in stores do
              let store = storeEntry.Value
              store.Read count freeIndex stream
          freeIndex <- freeIndex + count
  
  /// Describes a means to query components.
  and IQuery =
  
negative.code:                 freeIndex <- inc freeIndex
                  index
  
      member private this.FreeIndex index =
          if index = dec freeIndex
          then freeIndex <- dec freeIndex
          else freeList.Add index |> ignore<bool>
  
      member this.Register (comps : Dictionary<string, obj>) =
          let index = this.AllocIndex
          for compEntry in comps do
              stores.[compEntry.Key].SetItem index compEntry.Value
          index
  
      member this.Unregister (index : int) =
          for storeEntry in stores do
              storeEntry.Value.ZeroItem index
  
      member this.GetComponents index =
          let comps = dictPlus<string, obj> HashIdentity.Structural []
  