anchor.diff:  /// Systems are a bit different in this ECS; they're primarily storage for components and don't have any behavior
   /// associated with them. Because this ECS is purely event-driven, behavior is encoded in event handlers rather than
   /// systems. If anything, it might be better to renamed this type to Storage.
  -and 'w System (name : string) =
  -    member this.Name with get () = name
  +and [<AbstractClass>] 'w System (name) =
  +    member this.Name with get () : string = name
  +    abstract UnregisterComponent : Guid -> 'w Ecs -> bool
   
   /// Potentially-buffered array objects.
   /// ArrayObjsUnbuffered will be refEq to ArrayObjsBuffered if buffering is disabled.
  
positive.code:         let componentMultiplexed = this.IndexCorrelated entityId
          componentMultiplexed.IndexBuffered.Simplexes.[simplexName]
  
      member internal this.RegisterMultiplexed comp simplexName entityId ecs =
          let _ = this.RegisterCorrelated Unchecked.defaultof<_> entityId ecs
          let componentMultiplexed = this.IndexCorrelated entityId
          componentMultiplexed.Index.RegisterMultiplexed (simplexName, comp)
          componentMultiplexed
  
      member internal this.UnregisterMultiplexed simplexName entityId ecs =
          let componentMultiplexed = this.IndexCorrelated entityId
          componentMultiplexed.Index.UnregisterMultiplexed simplexName |> ignore<bool>
          this.UnregisterCorrelated entityId ecs
  
      type 'w Ecs with
  
  
negative.code:         let buffered = junctionsBufferedMapped.[fieldPath] :?> 'j ArrayRef
          ComponentRef<'j>.make index junction buffered
  
      member this.RegisterCorrelated (comp : 'c) entityId ecs =
  
          // activate component
          let mutable comp = comp
  