anchor.diff:  ValueClass _createGenericType() {
     return new ValueClass((cb) => cb
       ..name = 'GenericType'
  -    ..superTypes.add(classifier)
  -    ..properties.add(new Property((b) => b
  +    ..superTypes.add(classifier.toBuilder())
  +    ..properties.add(new PropertyBuilder()
         ..name = 'base'
  -      ..type = classifier))
  -    ..properties.add(new Property((b) => b
  +      ..type = classifier.toBuilder())
  +    ..properties.add(new PropertyBuilder()
         ..name = 'genericTypeValues'
  -      ..type = _createBuiltMap(typeParameter, classifier))));
  +      ..type = _createBuiltMap(typeParameter, classifier).toBuilder()));
   }
   
   ValueClass _property;
  
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 _createExternalClass() => new ValueClass((cb) => cb
    ..name = 'ExternalClass'
    ..superTypes.add(genericClassifier.toBuilder()));
  
  ValueClass _enumClass;
  ValueClass get enumClass => _enumClass ??= _createEnumClass();
  