anchor.diff:              archetype.Unregister archetypeSlot.ArchetypeIndex
               archetypeSlots.Remove entityRef.EntityId |> ignore<bool>
               comps.Remove compName |> ignore<bool>
  -            let archetypeId = { Terms = Dictionary<_, _> archetype.Id.Terms }
  +            let archetypeId = ArchetypeId.make (Dictionary<_, _> archetype.Id.Terms)
               archetypeId.Terms.Remove ("@" + compName) |> ignore<bool>
               if archetypeId.Terms.Count > 0 then
                   let archetypeIndex = archetype.Register comps
  
positive.code:             match term with Extra (compName, _, comp) -> comps.Add (compName, comp.AlwaysEqualValue) | _ -> ()
              archetype.Unregister archetypeSlot.ArchetypeIndex
              archetypeSlots.Remove entityRef.EntityId |> ignore<bool>
              let archetypeId = { Terms = Dictionary<_, _> archetype.Id.Terms }
              archetypeId.Terms.Add (termName, term)
              let state =
                  match archetypes.TryGetValue archetypeId with
  
negative.code:             let state = this.Publish<EcsRegistrationData, obj> (EcsEvents.Unregistering termName) eventData (state :> obj) :?> 's
              archetype.Unregister archetypeSlot.ArchetypeIndex
              archetypeSlots.Remove entityRef.EntityId |> ignore<bool>
              let archetypeId = ArchetypeId.make (Dictionary<_, _> archetype.Id.Terms)
              archetypeId.Terms.Remove termName |> ignore<bool>
              if archetypeId.Terms.Count > 0 then
                  let archetypeIndex = archetype.Register comps
  