anchor.diff:    List<CompileDiDependencyMetadata> deps;
     bool multi;
     CompileProviderMetadata(
  -      {CompileTokenMetadata token,
  -      CompileTypeMetadata useClass,
  -      dynamic useValue,
  -      CompileTokenMetadata useExisting,
  -      CompileFactoryMetadata useFactory,
  -      String useProperty,
  -      List<CompileDiDependencyMetadata> deps,
  -      bool multi}) {
  -    this.token = token;
  -    this.useClass = useClass;
  -    this.useValue = useValue;
  -    this.useExisting = useExisting;
  -    this.useFactory = useFactory;
  -    this.useProperty = useProperty;
  -    this.deps = deps;
  -    this.multi = multi == true;
  -  }
  +      {this.token,
  +      this.useClass,
  +      this.useValue,
  +      this.useExisting,
  +      this.useFactory,
  +      this.useProperty,
  +      this.deps,
  +      bool multi})
  +      : this.multi = multi == true;
  +
     static CompileProviderMetadata fromJson(Map<String, dynamic> data) {
       return new CompileProviderMetadata(
  -        token: _objFromJson(data["token"], CompileTokenMetadata.fromJson),
  -        useClass: _objFromJson(data["useClass"], CompileTypeMetadata.fromJson),
  +        token: _objFromJson(data['token'], CompileTokenMetadata.fromJson),
  +        useClass: _objFromJson(data['useClass'], CompileTypeMetadata.fromJson),
           useExisting:
  -            _objFromJson(data["useExisting"], CompileTokenMetadata.fromJson),
  +            _objFromJson(data['useExisting'], CompileTokenMetadata.fromJson),
           useValue:
  -            _objFromJson(data["useValue"], CompileIdentifierMetadata.fromJson),
  +            _objFromJson(data['useValue'], CompileIdentifierMetadata.fromJson),
           useFactory:
  -            _objFromJson(data["useFactory"], CompileFactoryMetadata.fromJson),
  -        useProperty: data["useProperty"],
  -        multi: data["multi"],
  -        deps: _arrayFromJson(data["deps"], CompileDiDependencyMetadata.fromJson)
  +            _objFromJson(data['useFactory'], CompileFactoryMetadata.fromJson),
  +        useProperty: data['useProperty'],
  +        multi: data['multi'],
  +        deps: _arrayFromJson(data['deps'], CompileDiDependencyMetadata.fromJson)
               as List<CompileDiDependencyMetadata>);
     }
   
     Map<String, dynamic> toJson() {
       return {
         // Note: Runtime type can't be serialized...
  -      "class": "Provider",
  -      "token": _objToJson(this.token),
  -      "useClass": _objToJson(this.useClass),
  -      "useExisting": _objToJson(this.useExisting),
  -      "useValue": _objToJson(this.useValue),
  -      "useFactory": _objToJson(this.useFactory),
  -      "useProperty": this.useProperty,
  -      "multi": this.multi,
  -      "deps": _arrayToJson(this.deps)
  +      'class': 'Provider',
  +      'token': _objToJson(token),
  +      'useClass': _objToJson(useClass),
  +      'useExisting': _objToJson(useExisting),
  +      'useValue': _objToJson(useValue),
  +      'useFactory': _objToJson(useFactory),
  +      'useProperty': useProperty,
  +      'multi': multi,
  +      'deps': _arrayToJson(deps)
       };
     }
   }
  
positive.code:           isHost: true),
        template: new CompileTemplateMetadata(
            template: template,
            templateUrl: "",
            preserveWhitespace: preserveWhitespace,
            styles: [],
            styleUrls: [],
  
negative.code:   @override
    CompileIdentifierMetadata identifier;
    bool identifierIsInstance;
  
    CompileTokenMetadata({this.value, this.identifier, bool identifierIsInstance})
        : this.identifierIsInstance = identifierIsInstance == true;
  
    static CompileTokenMetadata fromJson(Map<String, dynamic> data) {
      return new CompileTokenMetadata(
          value: data['value'],
          identifier: _objFromJson(
              data['identifier'], CompileIdentifierMetadata.fromJson),
          identifierIsInstance: data['identifierIsInstance']);
    }
  
    @override
    Map<String, dynamic> toJson() => {
          'value': value,
          'identifier': _objToJson(identifier),
          'identifierIsInstance': identifierIsInstance
        };
  
    dynamic get runtimeCacheKey =>
  