anchor.diff:      new (buffered, ecs) = SystemUncorrelated (typeof<'c>.Name, buffered, ecs)
   
       member this.Components with get () = components
  -    member this.WithComponentsBuffered (fn : 'c ArrayRef -> unit) = lock componentsBuffered (fun () -> fn componentsBuffered)
  -    member this.WithComponentsBufferedEffect (fn : 'c ArrayRef -> 'w -> 'w) world = lock componentsBuffered (fun () -> fn componentsBuffered world)
  +    member this.WithComponentsBuffered (fn : 'c ArrayRef -> 'w -> 'w) world = lock componentsBuffered (fun () -> fn componentsBuffered world)
   
       member this.IndexUncorrelated index =
           if index >= freeIndex then raise (ArgumentOutOfRangeException "index")
  
positive.code:                     let arefsBuffered = buffered.ArrayObjsBuffered |> Seq.cast<'c ArrayRef> |> Seq.toArray
                      fn arefsBuffered world
          | (false, _) -> world
  
      member this.WithComponentArraysBuffered<'c when 'c : struct and 'c :> 'c Component> fn =
          this.WithComponentArraysBufferedEffect<'c> (fun arefsBuffered world -> fn arefsBuffered; world)
  
      member this.BufferComponentArrays<'c when 'c : struct and 'c :> 'c Component> () =
          let componentName = typeof<'c>.Name
  
negative.code:             | ArrayObjsBuffered buffered -> buffered.ArrayObjsUnbuffered |> Seq.cast<'c ArrayRef> |> Seq.toArray
          | (false, _) -> [||]
  
      member this.WithComponentArraysBuffered<'c when 'c : struct and 'c :> 'c Component> fn (world : 'w) =
          let componentName = typeof<'c>.Name
          match arrayObjss.TryGetValue componentName with
          | (true, arrayObjs) ->
  