anchor.diff:              | (true, system) -> system.UnregisterCorrelated entityId
               | (false, _) -> false
   
  +        // track registration
  +        if unregistered then
  +            componentsRegistered.Remove entityId |> ignore<bool>
  +            componentsUnregistered.Add entityId |> ignore<bool>
  +
           // unregister correlation
           if unregistered then
               match ecs.Correlations.TryGetValue entityId with
  
positive.code:                 true
              | (false, _) -> false
  
          // register correlation
          if registered then
              match ecs.Correlations.TryGetValue entityId with
  
negative.code:             | Some system -> system.Components
              | None -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
  
          member this.PopComponentStates<'c when 'c : struct and 'c :> 'c Component> () =
              match this.TryIndexSystem<'c, SystemHierarchical<'c, 'w>> () with
              | Some system -> system.PopComponentStates ()
              | None -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
  
          member this.IndexNode<'c when 'c : struct and 'c :> 'c Component> nodeId =
              match this.TryIndexSystem<'c, SystemHierarchical<'c, 'w>> () with
              | Some system -> system.IndexNode nodeId
  