anchor.diff:              archetype.Unregister archetypeSlot.ArchetypeIndex
               archetypeSlots.Remove entityRef.EntityId |> ignore<bool>
               comps.Add (compName, comp)
  -            let archetypeId =
  -                archetype.Id.AddTerm
  -                    (Constants.Ecs.IntraComponentPrefix + compName)
  -                    (Intra (compName, typeof<'c>, AlwaysEqual null))
  +            let archetypeId = archetype.Id.AddTerm (Constants.Ecs.IntraComponentPrefix + compName) (Intra (compName, typeof<'c>, AlwaysEqual null))
               let state =
                   match archetypes.TryGetValue archetypeId with
                   | (true, archetype) ->
  
positive.code:     static member zero = Subquery.dict []
  
  /// Identifies an archetype.
  and [<CustomEquality; NoComparison>] ArchetypeId (terms) =
  
      let hashCode = Dictionary.hash terms // OPTIMIZATION: hash is cached for speed
  
  
negative.code:         queries.Add query
          query
  
      member this.RegisterEntity archetypeId comps state =
          let mutable state = state
          let archetype =
              match archetypes.TryGetValue archetypeId with
              | (true, archetype) -> archetype
              | (false, _) -> createArchetype archetypeId
          let entityRef = this.EntityRef
          let archetypeIndex = archetype.Register comps
          archetypeSlots.Add (entityRef.EntityId, { ArchetypeIndex = archetypeIndex; Archetype = archetype })
          for compName in archetype.Stores.Keys do
              let eventData = { EntityRef = entityRef; ContextName = compName }
              state <- this.Publish<EcsRegistrationData, obj> (EcsEvents.Unregistering compName) eventData (state :> obj) :?> 's
          (entityRef, state)
  
      member this.ReadComponents count archetypeId stream =
          let archetype =
  