anchor.diff:    final int patch;
     final String pre;
     final String build;
  -  
  +
     const Version(this.major, this.minor, this.patch, this.pre, this.build);
  -  
  +
     factory Version.fromMap(Map<String, dynamic> tag) {
       return new Version(tag['major'], tag['minor'], tag['patch'], tag['pre'], tag['build']);
     }
  -  
  +
     factory Version.parse(String tag) {
       _VersionTokenizer t = new _VersionTokenizer(tag);
       return new Version.fromMap(t.tokenize());
     }
  -  
  +
     Version increment(int part) {
       var map = toMap();
       switch (part) {
  
positive.code: }
  
  int _comparePreReleasePart(List a, List b) {
    for(var i = 0; i < a.length; i++) {
      if (i >= b.length) {
        return 1;
      }
  
negative.code:       return false;
      }
  
      var isSmaller = _comparePreReleasePart(_splitPreReleaseParts(this.pre), _splitPreReleaseParts(other.pre));
      return isSmaller == -1 ? true : false;
    }
  
    @override
    String toString() {
      var version = "${major}.${minor}.${patch}";
  