anchor.diff:  }
   
   installJsonConverters() {
  -  Converter.converters.add(new ObjectToJson());
  -  Converter.converters.add(new JsonToObject());
  +  Converters.add(new ObjectToJson());
  +  Converters.add(new JsonToObject());
   }
   
  -class ObjectToJson extends Converter {
  +class ObjectToJson extends ConverterBase<Object, Json> {
     ObjectToJson() : super(new TypeReflection(Object), new TypeReflection(Json));
   
  -  convert(object, TypeReflection targetReflection) {
  +  Json convertTo(Object object, TypeReflection targetReflection) {
       var simplified = _convert(object);
       return new Json(JSON.encode(simplified));
     }
  
positive.code:   }
  }
  
  class JsonToObject extends Converter {
    JsonToObject() : super(new TypeReflection(Json), new TypeReflection(Object));
  
    convert(Json json, TypeReflection targetReflection) {
      var decoded = JSON.decode(json.toString());
      return _convert(decoded, targetReflection);
    }
  
negative.code:   }
  
    toReflection(TypeReflection targetReflection) {
      Converter converter = Converters.find(source, targetReflection);
      if(converter is ConverterBase) {
        return converter.convertTo(object, targetReflection);
      }
      return converter.convert(object);
    }
  }
  
  class Converters {
    static List<Converter> converters = [];
  
    static Converter register(Type source, Type target, Transformation conversion) {
      Converter converter = new ConverterBase(new TypeReflection(source), new TypeReflection(target), conversion);
      converters.add(converter);
      return converter;
    }
  
    static Converter add(Converter converter) {
      converters.add(converter);
      return converter;
    }
  