anchor.diff:          comp.Active <- true
   
           // rewind the freeIndex when requesting ordered registration
  -        if ordered then
  -            while freeList.Remove (dec freeIndex) do
  -                freeIndex <- dec freeIndex
  +        if ordered then this.RewindFreeIndex ()
   
           // assign component
           if  not ordered &&
  
positive.code:         if not (correlations.ContainsKey entityId) then
          
              // rewind the freeIndex when requesting ordered registration
              if ordered then
                  while freeList.Remove (dec freeIndex) do
                      freeIndex <- dec freeIndex
  
              // allocate index for component, enlarging arrays if necessary
              let index =
  
negative.code: 
      new (ecs) = SystemCorrelated (false, ecs)
  
      member this.FreeListCount = freeList.Count
  
      member this.Correlateds = correlateds
      member this.WithCorrelatedsBuffered (fn : 'c ArrayRef -> 'w option -> 'w option) worldOpt = lock correlatedsBuffered (fun () -> fn correlatedsBuffered worldOpt)
  
      member this.RewindFreeIndex () =
          while freeList.Remove (dec freeIndex) do
              freeIndex <- dec freeIndex
  
      member this.IndexJunction<'j when 'j : struct and 'j :> 'j Component> fieldPath = junctionsMapped.[fieldPath] :?> 'j ArrayRef
      member this.WithJunctionBuffered<'j when 'j : struct and 'j :> 'j Component> fn fieldPath (worldOpt : 'w option) = let junction = junctionsBufferedMapped.[fieldPath] :?> 'j ArrayRef in lock junction (fun () -> fn junction worldOpt)
  