anchor.diff:          Seq.iter (fun system ->
               system.EntitiesCorrelated |>
               Seq.iter (fun correlated ->
  -                familyChanges.Add { FamilyChangeType = ComponentRemovedFromMember; MemberId = memberId; ParentIdOpt = correlated }
  +                familyChanges.Add { FamilyChangeType = ComponentRemovedFromMember; MemberId = memberId; AncestorIdOpt = correlated }
                   system.UnregisterCorrelated correlated |> ignore<bool>))
   
           // remove member's system from tree
  
positive.code:             | Some system -> system.IndexMember memberId
              | None -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
  
          member this.AddMember<'c when 'c : struct and 'c :> 'c Component> parentIdOpt =
              match this.TryIndexSystem<'c, SystemFamilial<'c, 'w>> () with
              | Some system -> system.AddMember parentIdOpt
              | None -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
  
          member this.RemoveMember<'c when 'c : struct and 'c :> 'c Component> parentIdOpt =
              match this.TryIndexSystem<'c, SystemFamilial<'c, 'w>> () with
              | Some system -> system.RemoveMember parentIdOpt
              | None -> failwith ("Could not find expected system '" + Unchecked.defaultof<'c>.TypeName + "'.")
  
          member this.QualifyFamilial<'c when 'c : struct and 'c :> 'c Component> memberId entityId =
  
negative.code: 
          // track registration
          if unregistered then
              familyChanges.Add { FamilyChangeType = ComponentRemovedFromMember; MemberId = memberId; AncestorIdOpt = entityId }
  
          // unregister correlation
          if unregistered && not isolated then
  