anchor.diff:      var elemA = a[i];
       var elemB = b[i];
   
  -    if (elemA is String && elemB is !String) {
  +    if (elemA is String && elemB is! String) {
         return 1;
  -    } else if (elemA is !String && elemB is String) {
  +    } else if (elemA is! String && elemB is String) {
         return -1;
       } else if (elemA is int && elemB is int) {
         if (elemA < elemB) {
  
positive.code:           return false;
          }
        }
      } 
      
      if (pre == null && other.pre == null) {
        return false;
      } else if (pre == null && other.pre != null) {
  
negative.code:         throw new Exception("Invalid Part");
          break;
      }
  
      return new Version.fromMap(map);
    }
  
    Map<String, dynamic> toMap() {
      return {
        "major": major,
  