anchor.diff:                      archetypeSlots.Add (entityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
                       world
                   | (false, _) ->
  -                    let archetype = createArchetype typeof<'c> archetypeId
  +                    let archetype = createArchetype archetypeId
                       let archetypeIndex = archetype.Register comps
                       archetypeSlots.Add (entityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
                       world
  
positive.code: /// Identifies an archetype.
  /// TODO: consider embedding hash code to make look-ups faster.
  type [<CustomEquality; NoComparison>] ArchetypeId =
      { ComponentNames : string HashSet
        Terms : Dictionary<string, Term> }
  
      static member inline Hash (hashSet : _ HashSet) =
          let mutable h = 0
          for item in hashSet do
              h <- h ^^^ item.GetHashCode ()
          h
  
      static member inline Hash (dict : Dictionary<_, _>) =
          let mutable h = 0
  
negative.code:             archetype.Unregister archetypeSlot.ArchetypeIndex
              archetypeSlots.Remove entityId |> ignore<bool>
              comps.Add (compName, comp)
              let archetypeId = { Terms = Dictionary<_, _> archetype.Id.Terms }
              archetypeId.Terms.Add ("@" + compName, Component (compName, typeof<'c>))
              let world =
                  match archetypes.TryGetValue archetypeId with
                  | (true, archetype) ->
  