anchor.diff:  
       // Now write the map of names to either the direct translation or to a
       // method.
  -    var entries = usableTranslations
  -        .expand((translation) => translation.originalMessages)
  +    var entries = (usableTranslations
  +            .expand((translation) => translation.originalMessages)
  +            .toSet()
  +            .toList()..sort((a, b) => a.name.compareTo(b.name)))
           .map((original) =>
               '    "${original.escapeAndValidateString(original.name)}" '
               ': ${_mapReference(original, locale)}');
  
positive.code:   Message get message => translated;
  
    toString() => id.toString();
  }
  
  /// We can't use a hyphen in a Dart library name, so convert the locale
  
negative.code:         .escapeAndValidateString(Intl.canonicalizedLocale(basicLocale));
      output.write(prologue(locale));
      // Exclude messages with no translation and translations with no matching
      // original message (e.g. if we're using some messages from a larger
      // catalog)
      var usableTranslations = translations
          .where((each) => each.originalMessages != null && each.message != null)
          .toList();
  