anchor.diff:      let freeList = HashSet<int> HashIdentity.Structural
       let correlations = dictPlus<Guid, int> HashIdentity.Structural []
       let correlationsBack = dictPlus<int, Guid> HashIdentity.Structural []
  -
  -    new (ecs) = SystemCorrelated (false, ecs)
  +    
  +    new (buffered, ecs) = SystemCorrelated (false, buffered, ecs)
  +    new (ecs) = SystemCorrelated (false, false, ecs)
   
       member this.FreeListCount = freeList.Count
  +    member this.EntitiesCorrelated = correlations |> Seq.map (fun kvp -> kvp.Key)
   
       member this.Correlateds = correlateds
       member this.WithCorrelatedsBuffered (fn : 'c ArrayRef -> 'w option -> 'w option) worldOpt = lock correlatedsBuffered (fun () -> fn correlatedsBuffered worldOpt)
  
positive.code:         let system = this.EntityEcs.IndexSystem<'c, SystemHierarchical<'c, 'w>> ()
          let hierarchical = system.IndexHierarchical this.EntityId : 'c ComponentRef
          hierarchical.IndexBuffered
  
      type 'w Ecs with
          member this.GetEntityRef entityId =
  
negative.code:             correlationsBack.Add (index, entityId)
              correlateds.Array.[index] <- comp
  
              // register correlation with ecs if needed
              if not isolated then
                  match ecs.Correlations.TryGetValue entityId with
                  | (true, correlation) ->
                      correlation.Add this.Name |> ignore<bool>
                      ecs.CorrelationChanges.[entityId] <- correlation
                  | (false, _) ->
                      ecs.Correlations.Add (entityId, HashSet.singleton StringComparer.Ordinal this.Name)
                      ecs.CorrelationChanges.[entityId] <- ecs.EmptyCorrelation
  
              // make component ref
              ComponentRef.make index correlateds correlatedsBuffered
  