anchor.diff:  and [<NoEquality; NoComparison; Struct>] ComponentRef<'c when 'c : struct and 'c :> 'c Component> =
       { ComponentIndex : int
         ComponentAref : 'c ArrayRef
  -      ComponentArefReadOnly : 'c ArrayRef }
  +      ComponentArefBuffered : 'c ArrayRef }
   
       member inline this.Index
           with get () = &this.ComponentAref.[this.ComponentIndex]
   
  +    member inline this.IndexBuffered
  +        with get () =
  +            let this = this
  +            lock this.ComponentArefBuffered (fun () -> this.ComponentArefBuffered.[this.ComponentIndex])
  +
       member inline this.Assign value =
           this.ComponentAref.[this.ComponentIndex] <- value
   
  -    member inline this.Read
  -        with get () =
  -            let this = this
  -            lock this.ComponentArefReadOnly (fun () -> this.ComponentArefReadOnly.[this.ComponentIndex])
  -
       static member inline (<!) (componentRef, value) =
           componentRef.ComponentAref.Array.[componentRef.ComponentIndex] <- value
   
  -    static member inline make index arr arr2 : 'c ComponentRef =
  +    static member inline make index aref arefBuffered : 'c ComponentRef =
           { ComponentIndex = index
  -          ComponentAref = arr
  -          ComponentArefReadOnly = arr2 }
  +          ComponentAref = aref
  +          ComponentArefBuffered = arefBuffered }
   
   /// An ECS event.
   and [<NoEquality; NoComparison>] SystemEvent<'d, 'w when 'w :> Freezable> =
  
positive.code:         let componentMultiplexed = this.IndexCorrelated entityId
          componentMultiplexed.Index.Simplexes.[multiId]
  
      member this.ReadMultiplexed multiId entityId =
          let componentMultiplexed = this.IndexCorrelated entityId
          componentMultiplexed.Read.Simplexes.[multiId]
  
      member this.RegisterMultiplexed comp multiId entityId ecs =
          let entityId = this.RegisterCorrelated Unchecked.defaultof<_> entityId ecs
  
negative.code:             let simplex = system.IndexMultiplexed multiId entityId
              &simplex.Simplex
  
          member this.IndexMultiplexedBuffered<'c when 'c : struct and 'c :> 'c Component> multiId entityId =
              let systemName = typeof<'c>.Name
              let systemOpt = this.TryIndexSystem<SystemMultiplexed<'c, 'w>> systemName
              if Option.isNone systemOpt then failwith ("Could not find expected system '" + systemName + "'.")
              let system = Option.get systemOpt
              let simplex = system.IndexMultiplexedBuffered multiId entityId
              &simplex.Simplex
  
          member this.RegisterMultiplexed<'c when 'c : struct and 'c :> 'c Component> comp multiId entityId =
  