anchor.diff:              let indexOpt3 = system3.TryIndexCorrelatedToI entityId
               let indexOpt4 = system4.TryIndexCorrelatedToI entityId
               if  indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 && indexOpt4 > -1 then
  -                this.Cache.Add (entityId, struct (indexOpt, indexOpt2, indexOpt3, indexOpt4))
  +                this.Cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3, indexOpt4)
                   true
  -            else
  -                this.Cache.Remove entityId |> ignore<bool>
  +            elif indexOpt > -1 || indexOpt2 > -1 || indexOpt3 > -1 || indexOpt4 > -1 then // OPTIMIZATION: make sure it exists and needs removing
  +                cache.Remove entityId |> ignore<bool>
                   false
  +            else false
   
   /// An ECS query.
   type Query<'c, 'c2, 'c3, 'c4, 'c5, 'w when
  
positive.code:         override this.Filter entityId =
              let indexOpt = system.TryIndexCorrelatedToI entityId
              if indexOpt > -1 then
                  this.Cache.Add (entityId, indexOpt)
                  true
              else
                  this.Cache.Remove entityId |> ignore<bool>
  
negative.code:             let indexOpt2 = system2.TryIndexCorrelatedToI entityId
              let indexOpt3 = system3.TryIndexCorrelatedToI entityId
              if  indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 then
                  this.Cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3)
                  true
              elif indexOpt > -1 || indexOpt2 > -1 || indexOpt3 > -1 then // OPTIMIZATION: make sure it exists and needs removing
                  cache.Remove entityId |> ignore<bool>
                  false
              else false
  
  /// An ECS query.
  type Query<'c, 'c2, 'c3, 'c4, 'w when
  