anchor.diff:              if index <> freeIndex then
                   components.[index].RefCount <- dec components.[index].RefCount
                   if components.[index].RefCount = 0 then
  -                    if compacting
  +                    if ordered
                       then freeList.Add index |> ignore<bool>
                       else preList.Add index |> ignore<bool>
               else freeIndex <- dec freeIndex
               correlations.Remove entityId |> ignore<bool>
               correlationsBack.Remove index |> ignore<bool>
  -            if  compacting then
  -                comp.Disjunction junctions entityId ecs
  -                if  components.Length < freeList.Count * 2 &&
  -                    components.Length > Constants.Ecs.ArrayReserve then
  -                    this.Compact ()
  +            if ordered then comp.Disjunction junctions entityId ecs
  +            if  components.Length < freeList.Count * 2 && // freeList is always empty if unordered
  +                components.Length > Constants.Ecs.ArrayReserve then
  +                this.Compact ()
               true
           | (false, _) -> false
   
  
positive.code: 
      member this.AddNode (parentIdOpt : Guid option) =
          let nodeId = Gen.id
          let system = SystemCorrelated<'c, 'w> (compacting, reserve, scstring nodeId)
          let added =
              match parentIdOpt with
              | Some parentId ->
  
negative.code:     let correlations = dictPlus [] : Dictionary<Guid, int>
      let correlationsBack = dictPlus [] : Dictionary<int, Guid>
  
      new (ordered, reserve) = SystemCorrelated (ordered, reserve, typeof<'c>.Name)
      new (reserve) = SystemCorrelated (false, reserve, typeof<'c>.Name)
      new () = SystemCorrelated (false, Constants.Ecs.ArrayReserve, typeof<'c>.Name)
  
  