anchor.diff:      'c2 : struct and 'c2 :> 'c2 Component and
       'c3 : struct and 'c3 :> 'c3 Component and
       'c4 : struct and 'c4 :> 'c4 Component and
  -    'c5 : struct and 'c5 :> 'c5 Component> (ecs : 'w Ecs) =
  +    'c5 : struct and 'c5 :> 'c5 Component> (ecs : 'w Ecs, [<ParamArray>] excluding : Type array) =
   
       let cache = OrderedDictionary<uint64, struct (int * int * int * int * int)> HashIdentity.Structural
  +    let excluding = hashSetPlus<uint> HashIdentity.Structural (Seq.map (fun ty -> (ecs.IndexSystem (getTypeName ty)).Id) excluding)
       let correlation = hashSetPlus<string> StringComparer.Ordinal [typeof<'c>.Name; typeof<'c2>.Name; typeof<'c3>.Name; typeof<'c4>.Name; typeof<'c5>.Name]
       let system = ecs.IndexSystem<'c, SystemCorrelated<'c, 'w>> ()
       let system2 = ecs.IndexSystem<'c2, SystemCorrelated<'c2, 'w>> ()
  
positive.code:             let indexOpt5 = system5.TryIndexCorrelatedToI entityId
              let indexOpt6 = system6.TryIndexCorrelatedToI entityId
              let indexOpt7 = system7.TryIndexCorrelatedToI entityId
              if  indexOpt > -1 && indexOpt2 > -1 && indexOpt3 > -1 && indexOpt4 > -1 && indexOpt5 > -1 && indexOpt6 > -1 && indexOpt7 > -1 then
                  cache.[entityId] <- struct (indexOpt, indexOpt2, indexOpt3, indexOpt4, indexOpt5, indexOpt6, indexOpt7)
              elif indexOpt > -1 || indexOpt2 > -1 || indexOpt3 > -1 || indexOpt4 > -1 || indexOpt5 > -1 || indexOpt6 > -1 || indexOpt7 > -1 then // OPTIMIZATION: make sure it exists and needs removing
                  cache.Remove entityId |> ignore<bool>
negative.code:     'c : struct and 'c :> 'c Component and
      'c2 : struct and 'c2 :> 'c2 Component and
      'c3 : struct and 'c3 :> 'c3 Component and
      'c4 : struct and 'c4 :> 'c4 Component> (ecs : 'w Ecs, [<ParamArray>] excluding : Type array) =
              
      let cache = OrderedDictionary<uint64, struct (int * int * int * int)> HashIdentity.Structural
      let excluding = hashSetPlus<uint> HashIdentity.Structural (Seq.map (fun ty -> (ecs.IndexSystem (getTypeName ty)).Id) excluding)
      let correlation = hashSetPlus<string> StringComparer.Ordinal [typeof<'c>.Name; typeof<'c2>.Name; typeof<'c3>.Name; typeof<'c4>.Name]
      let system = ecs.IndexSystem<'c, SystemCorrelated<'c, 'w>> ()
      let system2 = ecs.IndexSystem<'c2, SystemCorrelated<'c2, 'w>> ()
  