anchor.diff:  
       member this.IndexHierarchical nodeId entityId =
           let (found, system) = systemDict.TryGetValue nodeId
  -        if not found then raise (InvalidOperationException "nodeId")
  +        if not found then raise (ArgumentOutOfRangeException "nodeId")
           system.IndexCorrelated entityId
   
       member this.RegisterHierarchical comp nodeId entityId ecs =
  
positive.code: 
      member this.IndexCorrelatedI entityId =
          let (found, index) = correlations.TryGetValue entityId
          if not found then raise (InvalidOperationException "entityId")
          index
  
      member this.IndexCorrelated entityId =
  
negative.code:             // ensure there is space in the arrays
              if freeIndex >= components.Length then
                  let length = components.Length * Constants.Ecs.ArrayGrowth
                  let arr = Array.zeroCreate length in components.Array.CopyTo (arr, 0); components.Array <- arr
                  comp.ResizeJunctions length junctions ecs
                  lock componentsBuffered (fun () ->
                      let arr = Array.zeroCreate length in componentsBuffered.Array.CopyTo (arr, 0); componentsBuffered.Array <- arr)
                  lock junctionsBuffered (fun () ->
                      comp.ResizeJunctions length junctionsBuffered ecs)
  
              // allocate component
              let index = freeIndex in freeIndex <- inc freeIndex
  