private static List <BreakingChangeBase> CompareAssemblies(AssemblyData oldAssembly, AssemblyData newAssembly, AssemblyFamily newFamily)
        {
            var breakingChanges = new List <BreakingChangeBase>();

            foreach (var oldType in oldAssembly.GetNonNestedTypeDefinitions())
            {
                var newType = oldType.GetEquivalentNewType(newFamily);
                if (newType == null)
                {
                    breakingChanges.Add(new RemovedRootType(oldType));
                }
                else
                {
                    breakingChanges.AddRange(CompareTypes(oldType, newType, newFamily));
                }
            }
            return(breakingChanges);
        }