anchor.diff:              let indexOpt3 = system3.TryIndexCorrelatedToI entityId
               let indexOpt4 = system4.TryIndexCorrelatedToI entityId
               let indexOpt5 = system5.TryIndexCorrelatedToI entityId
  -            if  indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 && indexOpt4 > -1 && indexOpt5 > -1 then
  -                cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3, indexOpt4, indexOpt5)
  +            if indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 && indexOpt4 > -1 && indexOpt5 > -1 then
  +                let systemIds = ecs.IndexSystemIds entityId
  +                if not (systemIds.IsSupersetOf excluding)
  +                then cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3, indexOpt4, indexOpt5)
  +                else cache.Remove entityId |> ignore<bool>
               elif indexOpt > -1 || indexOpt2 > -1 || indexOpt3 > -1 || indexOpt4 > -1 || indexOpt5 > -1 then // OPTIMIZATION: make sure it exists and needs removing
                   cache.Remove entityId |> ignore<bool>
   
  
positive.code:         override this.Filter entityId =
              let indexOpt = system.TryIndexCorrelatedToI entityId
              let indexOpt2 = system2.TryIndexCorrelatedToI entityId
              if  indexOpt > -1 && indexOpt2 > -1 then
                  cache.[entityId] <- struct (indexOpt, indexOpt2)
              elif indexOpt > -1 || indexOpt2 > -1 then // OPTIMIZATION: make sure it exists and needs removing
                  cache.Remove entityId |> ignore<bool>
  
  
negative.code:             let indexOpt = system.TryIndexCorrelatedToI entityId
              let indexOpt2 = system2.TryIndexCorrelatedToI entityId
              let indexOpt3 = system3.TryIndexCorrelatedToI entityId
              if indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 then
                  let systemIds = ecs.IndexSystemIds entityId
                  if not (systemIds.IsSupersetOf excluding)
                  then cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3)
                  else cache.Remove entityId |> ignore<bool>
              elif indexOpt > -1 || indexOpt2 > -1 || indexOpt3 > -1 then // OPTIMIZATION: make sure it exists and needs removing
                  cache.Remove entityId |> ignore<bool>
  
  