anchor.diff:          '''ouch. This is needed as currently have an issue when creating meta model
   where ValueClass has a field of type ValueClass but that instance doesn't
   exist yet''';
  -  builder.superTypes.add(genericClassifier);
  +  builder.superTypes.add(genericClassifier.toBuilder());
     builder.properties
  -    ..add(new Property((b) => b
  +    ..add(new PropertyBuilder()
         ..name = 'properties'
  -      ..type = _createBuiltSet(property)))
  -    ..add(new Property((b) => b
  +      ..type = _createBuiltSet(property).toBuilder())
  +    ..add(new PropertyBuilder()
         ..name = 'allProperties'
  -      ..type = _createBuiltSet(property)
  +      ..type = _createBuiltSet(property).toBuilder()
         ..derivedExpression = '''new BuiltSet<Property>(
  -    concat([superTypes.expand((vc) => vc.allProperties), properties]))'''))
  -    ..add(new Property((b) => b
  +    concat([superTypes.expand((vc) => vc.allProperties), properties]))''')
  +    ..add(new PropertyBuilder()
         ..name = 'isAbstract'
  -      ..type = dartBool
  -      ..defaultValue = false));
  +      ..type = dartBool.toBuilder()
  +      ..defaultValue = false);
     return builder.build();
   }
   
  
positive.code:   return new ValueClass((cb) => cb
      ..name = 'Classifier'
      ..isAbstract = true
      ..superTypes.add(namedElement));
  }
  
  ValueClass _typeParameter;
  
negative.code: ValueClass _createGenericType() {
    return new ValueClass((cb) => cb
      ..name = 'GenericType'
      ..superTypes.add(classifier.toBuilder())
      ..properties.add(new PropertyBuilder()
        ..name = 'base'
        ..type = classifier.toBuilder())
      ..properties.add(new PropertyBuilder()
        ..name = 'genericTypeValues'
        ..type = _createBuiltMap(typeParameter, classifier).toBuilder()));
  }
  
  ValueClass _property;
  