anchor.diff:    return new ValueClass((cb) => cb
       ..name = 'NamedElement'
       ..isAbstract = true
  -    ..superTypes.add(modelElement)
  +    ..superTypes.add(modelElement.toBuilder())
       ..properties.add(new PropertyBuilder()
         ..name = 'name'
         ..type = dartString.toBuilder()
  
positive.code: ValueClass _createProperty() {
    final builder = new ValueClassBuilder()
      ..name = 'Property'
      ..superTypes.add(namedElement);
  
    builder.properties
      ..add(new Property((b) => b
        ..name = 'type'
        ..type = classifier))
      ..add(new Property((b) => b
        ..name = 'isNullable'
        ..type = dartBool
        ..defaultValue = false))
      ..add(new Property((b) => b
        ..name = 'defaultValue'
        ..type = dartObject
        ..isNullable = true))
      ..add(new Property((b) => b
        ..name = 'derivedExpression'
        ..type = dartString
        ..isNullable = true))
      ..add(new Property((b) => b
        ..name = 'isDerived'
        ..type = dartBool
        ..derivedExpression = 'derivedExpression != null'));
  
    return builder.build();
  }
  
negative.code: ValueClass _createEnumClass() {
    return new ValueClass((cb) => cb
      ..name = 'EnumClass'
      ..superTypes.add(classifier.toBuilder())
      ..properties.add(new PropertyBuilder()
        ..name = 'literals'
        ..type = _createBuiltSet(dartString).toBuilder()));
  }
  
  ValueClass _package;
  