private static IEnumerable<RoleLeaderChanged> InternalDiffRolesLeader(Gossip oldGossip, Gossip newGossip, UniqueAddress selfUniqueAddress)
{
foreach (var role in oldGossip.AllRoles.Union(newGossip.AllRoles))
{
var newLeader = newGossip.RoleLeader(role, selfUniqueAddress);
if(newLeader == null && oldGossip.RoleLeader(role, selfUniqueAddress) != null)
yield return new RoleLeaderChanged(role, null);
if(newLeader != null && !newLeader.Equals(oldGossip.RoleLeader(role, selfUniqueAddress)))
yield return new RoleLeaderChanged(role, newLeader.Address);
}
}