anchor.diff:          member this.Iter fn =
               let system = this.Ecs.IndexSystem<'c, SystemCorrelated<'c, 'w>> ()
               let system2 = this.Ecs.IndexSystem<'c2, SystemCorrelated<'c2, 'w>> ()
  -            for kvp in this.Cache do
  -                let entityId = kvp.Key
  +            for entityId in this.Cache do
                   fn
                       (system.IndexCorrelated entityId)
                       (system2.IndexCorrelated entityId)
  
positive.code:             let system3 = this.Ecs.IndexSystem<'c3, SystemCorrelated<'c3, 'w>> ()
              let system4 = this.Ecs.IndexSystem<'c4, SystemCorrelated<'c4, 'w>> ()
              let system5 = this.Ecs.IndexSystem<'c5, SystemCorrelated<'c5, 'w>> ()
              for kvp in this.Cache do
                  let entityId = kvp.Key
                  fn
                      (system.IndexCorrelated entityId)
                      (system2.IndexCorrelated entityId)
  
negative.code: 
      member this.Filter correlation entityId =
          if filter correlation then
              cache.Add entityId |> ignore<bool>
              true
          else
              cache.Remove entityId |> ignore<bool>
              false
  
      member this.Iter (fn : 'w EntityRef -> unit) =
          for entityId in cache do
              fn { EntityId = entityId; EntityEcs = ecs }
  
  /// An ECS query.
  and Query<'c, 'w when
  