anchor.diff:              let archetype = archetypeSlot.Archetype
               let mutable state = state
               for compName in archetype.Stores.Keys do
  -                let eventData = { EntityId = entityRef.EntityId; ContextName = compName }
  +                let eventData = { EntityRef = entityRef; ContextName = compName }
                   state <- this.Publish<RegistrationData, obj> EcsEvents.Unregistering eventData (state :> obj) :?> 's
               for termEntry in archetype.Terms do
  -                let eventData = { EntityId = entityRef.EntityId; ContextName = termEntry.Key }
  +                let eventData = { EntityRef = entityRef; ContextName = termEntry.Key }
                   state <- this.Publish<RegistrationData, obj> EcsEvents.Unregistering eventData (state :> obj) :?> 's
               archetype.Unregister archetypeSlot.ArchetypeIndex
               state
  
positive.code:         let i = archetypeSlot.ArchetypeIndex
          statement.Invoke (&store.[i], &store2.[i], &store3.[i], &store4.[i], &store5.[i], &store6.[i], &store7.[i], &store8.[i], &store9.[i], state)
  
      member this.Index<'c, 's when
          'c : struct and 'c :> 'c Component>
          (state : 's, statement : Statement<'c, 's>) =
          this.Index (typeof<'c>.Name, state, statement)
  
      member this.Index<'c, 'c2, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component>
          (state : 's, statement : Statement<'c, 'c2, 's>) =
          this.Index (typeof<'c>.Name, typeof<'c2>.Name, state, statement)
  
      member this.Index<'c, 'c2, 'c3, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component and
          'c3 : struct and 'c3 :> 'c3 Component>
          (state : 's, statement : Statement<'c, 'c2, 'c3, 's>) =
          this.Index (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, state, statement)
  
      member this.Index<'c, 'c2, 'c3, 'c4, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component and
          'c3 : struct and 'c3 :> 'c3 Component and
          'c4 : struct and 'c4 :> 'c4 Component>
          (state : 's, statement : Statement<'c, 'c2, 'c3, 'c4, 's>) =
          this.Index (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, typeof<'c4>.Name, state, statement)
  
      member this.Index<'c, 'c2, 'c3, 'c4, 'c5, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component and
          'c3 : struct and 'c3 :> 'c3 Component and
          'c4 : struct and 'c4 :> 'c4 Component and
          'c5 : struct and 'c5 :> 'c5 Component>
          (state : 's, statement : Statement<'c, 'c2, 'c3, 'c4, 'c5, 's>) =
          this.Index (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, typeof<'c4>.Name, typeof<'c5>.Name, state, statement)
  
      member this.Index<'c, 'c2, 'c3, 'c4, 'c5, 'c6, 's when
          'c : struct and 'c :> 'c Component and
          'c2 : struct and 'c2 :> 'c2 Component and
          'c3 : struct and 'c3 :> 'c3 Component and
  
negative.code:         | (true, archetypeSlot) ->
              let archetype = archetypeSlot.Archetype
              let comps = archetype.GetComponents archetypeSlot.ArchetypeIndex
              let eventData = { EntityRef = entityRef; ContextName = compName }
              let state = this.Publish<RegistrationData, obj> EcsEvents.Unregistering eventData (state :> obj) :?> 's
              archetype.Unregister archetypeSlot.ArchetypeIndex
              archetypeSlots.Remove entityRef.EntityId |> ignore<bool>
  