anchor.diff:          let system = this.EntityEcs.IndexSystem<'c, SystemHierarchical<'c, 'w>> ()
           let hierarchical = system.IndexHierarchical this.EntityId : 'c ComponentRef
           hierarchical.IndexBuffered
  +
  +    member this.IndexFamilial<'c when 'c : struct and 'c :> 'c Component> memberId =
  +        let system = this.EntityEcs.IndexSystem<'c, SystemFamilial<'c, 'w>> ()
  +        let familial = system.IndexFamilial memberId this.EntityId : 'c ComponentRef
  +        &familial.Index
  +
  +    member this.IndexFamilialBuffered<'c when 'c : struct and 'c :> 'c Component> memberId =
  +        let system = this.EntityEcs.IndexSystem<'c, SystemFamilial<'c, 'w>> ()
  +        let familial = system.IndexFamilial memberId this.EntityId : 'c ComponentRef
  +        familial.IndexBuffered
   
       type 'w Ecs with
           member this.GetEntityRef entityId =
  
positive.code:             | (false, _) -> false
  
          // unregister correlation from ecs if needed
          if unregistered then
              match ecs.Correlations.TryGetValue entityId with
              | (true, correlation) ->
                  correlation.Remove this.Name |> ignore<bool>
  
negative.code:             correlationsBack.Add (index, entityId)
              correlateds.Array.[index] <- comp
  
              // register correlation with ecs if needed
              if not isolated then
                  match ecs.Correlations.TryGetValue entityId with
                  | (true, correlation) ->
                      correlation.Add this.Name |> ignore<bool>
                      ecs.CorrelationChanges.[entityId] <- correlation
                  | (false, _) ->
                      ecs.Correlations.Add (entityId, HashSet.singleton StringComparer.Ordinal this.Name)
                      ecs.CorrelationChanges.[entityId] <- ecs.EmptyCorrelation
  
              // make component ref
              ComponentRef.make index correlateds correlatedsBuffered
  