anchor.diff:              | Some system -> system.UnregisterMultiplexed simplexName entityId
               | _ -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
   
  +/// Tracks changes in a hierarchical system.
  +type HierarchyChange =
  +    | HierarchyAdd of Guid * Guid
  +    | HierarchyRemove of Guid * Guid
  +
   /// An Ecs system that stores components in a tree hierarchy.
   type SystemHierarchical<'c, 'w when 'c : struct and 'c :> 'c Component> (buffered, isolated, ecs : 'w Ecs) =
       inherit System<'w> (Unchecked.defaultof<'c>.TypeName)
   
       let systemTree = ListTree.makeEmpty<SystemCorrelated<'c, 'w>> ()
       let systemDict = dictPlus<Guid, SystemCorrelated<'c, 'w>> HashIdentity.Structural []
  -    let mutable changes = List<struct (Guid * bool)> ()
  +    let mutable changes = List<HierarchyChange> ()
   
       new (ecs) = SystemHierarchical (false, false, ecs)
   
  
positive.code:         ListTree.findAll (fun system -> system.Name = nodeIdStr) |>
          Seq.iter (fun system ->
              system.GetEntitiesCorrelated () |>
              Seq.map (fun correlated -> changes.Add struct (correlated, false); correlated) |>
              Seq.iter (fun correlated -> system.UnregisterCorrelated correlated |> ignore<bool>))
          systemDict.Remove nodeId
  
  
negative.code: 
      member this.PopHierarchyChanges () =
          let popped = changes
          changes <- List<HierarchyChange> ()
          popped
  
      member this.IndexNode nodeId =
  