anchor.diff:              match this.TryIndexSystem<SystemCorrelated<'t, 'w>> systemName with
               | Some system ->
                   if system.UnregisterCorrelated entityId this then
  -                    match this.Correlations.TryGetValue entityId with
  -                    | (true, correlation) -> correlation.Add systemName
  -                    | (false, _) -> this.Correlations.Add (entityId, List [systemName])
  -            | _ -> failwith ("Could not find expected system '" + systemName + "'.")
  -
  -        member this.CorrelateSystems entityId =
  -            this.Correlations.[entityId] |>
  -            Seq.map (fun systemName -> (systemName, this.IndexSystem<'w System> systemName)) |>
  -            dictPlus
  -
  -        member this.CorrelateEntities<'t when 't : struct and 't :> Component> systemName =
  -            match this.TryIndexSystem<SystemCorrelated<'t, 'w>> systemName with
  -            | Some system -> system.GetEntities ()
  -            | _ -> failwith ("Could not find expected system '" + systemName + "'.")
  -
  -/// An Ecs system that stores multiple components per entity id.
  -type [<AbstractClass>] SystemMultiplexed<'t, 'w when 't : struct and 't :> Component> () =
  -    inherit SystemCorrelated<'t ComponentMultiplexed, 'w> ()
  -
  -    member this.HasMultiplexed multiId entityId =
  -        if this.HasComponent entityId then
  -            let comp = this.GetComponent entityId
  -            comp.Entries.ContainsKey multiId
  -        else false
  -
  -    member this.GetMultiplexed multiId entityId =
  -        let componentMultiplexed = &this.GetComponent entityId
  -        componentMultiplexed.Entries.[multiId]
  -
  -    member this.RegisterMultiplexed multiId entityId comp ecs =
  -        let _ = this.RegisterCorrelated entityId ecs
  -        let componentMultiplexed = &this.GetComponent entityId
  -        do componentMultiplexed.RegisterComponent (multiId, comp)
  -        multiId
  -
  -    member this.UnregisterMultiplexed multiId entityId ecs =
  -        let componentMultiplexed = &this.GetComponent entityId
  -        let _ = componentMultiplexed.UnregisterComponent multiId
  -        this.UnregisterCorrelated entityId ecs
  -
  -    type 'w Ecs with
  -
  -        member this.QualifyMultiplexed<'t when 't : struct and 't :> Component> systemName multiId entityId =
  -            let systemOpt = this.TryIndexSystem<SystemMultiplexed<'t, 'w>> systemName
  -            if Option.isNone systemOpt then failwith ("Could not find expected system '" + systemName + "'.")
  -            let system = Option.get systemOpt
  -            system.HasMultiplexed multiId entityId
  -
  -        member this.IndexMultiplexed<'t when 't : struct and 't :> Component> systemName multiId entityId =
  -            let systemOpt = this.TryIndexSystem<SystemMultiplexed<'t, 'w>> systemName
  -            if Option.isNone systemOpt then failwith ("Could not find expected system '" + systemName + "'.")
  -            let system = Option.get systemOpt
  -            let simplex = system.GetMultiplexed multiId entityId
  -            &simplex.Simplex
  -
  -        member this.RegisterMultiplexed<'t when 't : struct and 't :> Component> systemName entityId comp =
  -            match this.TryIndexSystem<SystemMultiplexed<'t, 'w>> systemName with
  -            | Some system ->
  -                let _ = system.RegisterMultiplexed entityId comp
  -                match this.Correlations.TryGetValue entityId with
  -                | (true, correlation) -> correlation.Add systemName
  -                | (false, _) -> this.Correlations.Add (entityId, List [systemName])
  -            | None -> failwith ("Could not find expected system '" + systemName + "'.")
  -
  -        member this.UnregisterMultiplexed<'t when 't : struct and 't :> Component> systemName multiId entityId =
  -            match this.TryIndexSystem<SystemMultiplexed<'t, 'w>> systemName with
  -            | Some system ->
  -                if system.UnregisterMultiplexed multiId entityId this then
                       match this.Correlations.TryGetValue entityId with
                       | (true, correlation) -> correlation.Add systemName
                       | (false, _) -> this.Correlations.Add (entityId, List [systemName])
  
positive.code: 
      type 'w Ecs with
  
          member this.QualifyCorrelated<'t when 't : struct and 't :> Component> systemName entityId =
              let systemOpt = this.TryIndexSystem<SystemCorrelated<'t, 'w>> systemName
              if Option.isNone systemOpt then failwith ("Could not find expected system '" + systemName + "'.")
              let system = Option.get systemOpt
              system.HasComponent entityId
  
          member this.IndexCorrelated<'t when 't : struct and 't :> Component> systemName entityId =
              let systemOpt = this.TryIndexSystem<SystemCorrelated<'t, 'w>> systemName
              if Option.isNone systemOpt then failwith ("Could not find expected system '" + systemName + "'.")
              let system = Option.get systemOpt
              &system.GetComponent entityId
  
          member this.RegisterCorrelated<'t when 't : struct and 't :> Component> systemName entityId comp =
              match this.TryIndexSystem<SystemCorrelated<'t, 'w>> systemName with
  
negative.code:             and set value = this.RefCount <- value
      member this.Components
          with get () = this.Entries.Values :> 't Simplex IEnumerable
      member this.RegisterMultiplexed (multiId, comp) =
          this.Entries.Add (multiId, { Simplex = comp })
      member this.UnregisterMultiplexed multiId =
          this.Entries.Remove multiId
  
  /// A base system type of an Ecs.
  