This addresses the todo in Sort about the type checking on the comparator() attribute.
Some other options:
Re-purpose @Sort to simply define that we want the set/map to be sorted. A comparator to apply could be broken out into a separate annotation. @Comparator? @SortComparator? If that companion annotation was not present, @Sort would indicate a natural sort.
Distinct annotations, as mentioned in subject. @NaturalSort and @ComparatorSort. Although Emmanuel mentioned that it might be better to use @SortNaturally and @SortByComparator because of auto-completion in Eclipse not supporting middle-matching the way IntelliJ does.
Personally I prefer the first approach: