anchor.diff:  
       member this.IterateParallel (statement : Statement<'c, 'w>, ?compName, ?world : 'w) =
           let mutable world = Option.getOrDefault Unchecked.defaultof<'w> world
  -        for archetypeEntry in archetypes do
  -            let archetype = archetypeEntry.Value
  -            let archetypeId = archetype.Id
  -            let length = archetype.Length
  -            let stores = archetype.Stores
  -            let store = this.IndexStore<'c> (Option.getOrDefault typeof<'c>.Name compName) archetypeId stores
  -            lock store $ fun () ->
  -                let mutable i = 0
  -                while i < store.Length && i < length do
  -                    let comp = &store.[i]
  -                    if comp.Active then
  -                        world <- statement.Invoke (&comp, world)
  -                        i <- inc i
  +        archetypes |> Seq.map (fun archetypeEntry ->
  +            let archetype = archetypeEntry.Value
  +            let archetypeId = archetype.Id
  +            let length = archetype.Length
  +            let stores = archetype.Stores
  +            let store = this.IndexStore<'c> (Option.getOrDefault typeof<'c>.Name compName) archetypeId stores
  +            let fn =
  +                fun () ->
  +                    lock store $ fun () ->
  +                        let mutable i = 0
  +                        while i < store.Length && i < length do
  +                            let comp = &store.[i]
  +                            if comp.Active then
  +                                world <- statement.Invoke (&comp, world)
  +                                i <- inc i
  +            (archetypeId, fn)
   
       member this.IterateParallel
           (statement : Statement<'c, 'c2, 'w>,
  
positive.code:         | (true, store) -> store :?> 'c Store
          | (false, _) -> failwith ("Invalid entity frame for archetype " + scstring archetypeId + ".")
  
      member this.Subqueries =
          seq subqueries
  
  
negative.code: type private EcsCallback<'d, 'w when 'w : not struct> =
      EcsEvent<'d, 'w> -> Ecs -> 'w -> 'w
  
  /// A scheduled Ecs event callback.
  and [<NoEquality; NoComparison>] private EcsCallbackScheduled<'d, 'w when 'w : not struct> =
      { EcsDependencies : Query list
        EcsEvent : EcsEvent<'d, 'w> -> Ecs -> 'w -> obj }
  
  /// The type of Ecs event.
  