anchor.diff:          let system = Option.get systemOpt
           &system.GetComponent entityId
   
  -    member this.RegisterEntity<'t when 't : struct and 't :> Component> systemName entityId comp =
  +    member this.RegisterEntity<'t when 't : struct and 't :> Component> systemName entityId compOpt =
           match this.TryGetSystem<SystemCorrelated<'t, 'w>> systemName with
           | Some system ->
  -            let _ = system.RegisterEntity entityId comp
  +            let _ = system.RegisterEntity entityId compOpt
               match correlations.TryGetValue entityId with
               | (true, correlation) -> correlation.Add systemName
               | (false, _) -> correlations.Add (entityId, List [systemName])
  
positive.code:     member this.JunctionEntityExplicit<'t, 'w when 't : struct and 't :> Component>
          (systemName : string) (junctions : Dictionary<string, 'w System>) (entityId : Guid) =
          let system = junctions.[systemName] :?> SystemCorrelated<'t, 'w>
          let index = system.RegisterEntity entityId Unchecked.defaultof<'t> this
          ComponentRef.make index system.Components
  
      member this.JunctionEntity<'t, 'w when 't : struct and 't :> Component>
  
negative.code:     member this.GetEntities () =
          correlations.Keys :> _ IEnumerable
  
      abstract member RegisterEntity : Guid -> 't option -> 'w Ecs -> int
      default this.RegisterEntity entityId compOpt _ =
          match Dictionary.tryGetValue entityId correlations with
          | (false, _) ->
              let comp = Option.getOrDefault Unchecked.defaultof<'t> compOpt
              if freeList.Count = 0 then
                  if freeIndex < components.Length - 1 then
                      components.[freeIndex] <- comp
  