anchor.diff:  
                   // move components
                   components.[i] <- components.[j]
  -                components.[0].MoveJunction j i componentsJunctioned ecs
  +                components.[0].MoveJunction j i junctions ecs
   
                   // update book-keeping
                   match correlationsBack.TryGetValue j with
  
positive.code:     inherit SystemMany<'w> (name)
  
      let mutable components = ecs.AllocateArray<'c> name
      let mutable componentsJunctioned = Unchecked.defaultof<'c>.AllocateJunctions ecs
      let mutable freeIndex = 0
      let freeList = HashSet<int> ()
      let correlations = dictPlus [] : Dictionary<Guid, int>
  
negative.code:             else freeIndex <- dec freeIndex
              correlations.Remove entityId |> ignore<bool>
              correlationsBack.Remove index |> ignore<bool>
              comp.Disjunction index junctions ecs
              if  components.Length < freeList.Count * 2 && // freeList is always empty if unordered
                  components.Length > Constants.Ecs.ArrayReserve then
                  this.Compact ecs
  