runtimeType and toString() are compared.
@override bool operator ==(Object other) { if( other.runtimeType != runtimeType ) return false; return other.toString() == toString(); }