1. @override
int compareTo(other)

Compares this object to another Comparable

Returns a value like a Comparator when comparing this to other. That is, it returns a negative integer if this is ordered before other, a positive integer if this is ordered after other, and zero if this and other are ordered together.

The other argument must be a value that is comparable to this object.

Source

@override
int compareTo(dynamic other) {
  if (other is ModelElement) {
    return name.toLowerCase().compareTo(other.name.toLowerCase());
  } else {
    return 0;
  }
}