anchor.diff:                  Array.map (fun sourceName -> (sourceName, ecs.GetSystem<'w System> sourceName)) |>
                   dictPlus
               junctionsOpt <- Some junctions
  -            junctions
  -
  -type [<AbstractClass>] SystemMulti<'t, 'w when 't : struct and 't :> Component> () =
  -    inherit SystemCorrelated<'t ComponentMulti, 'w> ()
  -
  -    member this.RegisterEntity3 compId entityId ecs =
  -        let _ = this.RegisterEntity entityId ecs
  -        let componentMulti = &this.GetComponent entityId
  -        do componentMulti.RegisterComponent compId
  -        &componentMulti
  -
  -    member this.UnregisterEntity3 compId entityId ecs =
  -        let componentMulti = &this.GetComponent entityId
  -        let result = componentMulti.UnregisterComponent compId
  -        let _ = this.UnregisterEntity entityId ecs
  -        result+            junctions
positive.code: type [<NoEquality; NoComparison; Struct>] ComponentMulti<'t when 't : struct> =
      internal
          { mutable RefCount : int
            Entries : Dictionary<Guid, 't> }
      interface Component with
          member this.RefCount
              with get () = this.RefCount
              and set value = this.RefCount <- value
      member this.Components
          with get () = this.Entries.Values :> 't IEnumerable
      member this.RegisterComponent compId =
          this.Entries.Add (compId, Unchecked.defaultof<'t>)
      member this.UnregisterComponent compId =
          this.Entries.Remove compId
  
  type [<NoEquality; NoComparison; Struct>] ComponentRef<'t when 't : struct and 't :> Component> =
      { ComponentIndex : int
  
negative.code: open System
  open System.Collections.Generic
  open Prime
  
  type OneOf<'t when 't : struct> =
      { mutable OneOf : 't }
  
  type Component =
      abstract RefCount : int with get, set
  