anchor.diff:      static member zero = Subquery.dict []
   
   /// Identifies an archetype.
  -and [<CustomEquality; NoComparison>] ArchetypeId (terms) =
  +and ArchetypeId (terms) =
   
       let hashCode = Dictionary.hash terms // OPTIMIZATION: hash is cached for speed
   
  
positive.code:             let eventData = { EntityRef = entityRef; ContextName = termName }
              this.Publish<EcsRegistrationData, obj> (EcsEvents.Register termName) eventData (state :> obj) :?> 's
          | (false, _) ->
              let archetypeId = ArchetypeId (Dictionary.singleton HashIdentity.Structural termName term)
              let comps = dictPlus HashIdentity.Structural []
              match term with Extra (compName, _, comp) -> comps.Add (compName, comp.Value) | _ -> ()
              let state =
  
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 =
  