anchor.diff:  //Define some interfaces
   //that we want our JSON structure to look like
   
  -interface Person extends JsonObject {
  +interface Person default _PersonImpl{
      AddressList addresses;
  +   Person.fromString(String jsonString);
  +}
   
  +class _PersonImpl extends JsonObject implements Person {
  +  _PersonImpl();
  +  factory _PersonImpl.fromString(String jsonString) {
  +    return new JsonObject.fromJsonString(jsonString, new _PersonImpl());  
  +  } 
   }
   
   
  
positive.code: // does anyone have any ideas?
  testStrongTyping() {
    print("testStrongTyping");
    var jsonString = _getStrongTypingJsonString();
  
    // Create a new JSON object which looks like our Person
    // A Person Interface extends the JsonObject, so no
    // warning is reported
  
    Person person = new JsonObject.fromJsonString(jsonString); // this will fail.
  
  
  
    //verify property access
  
negative.code: }
  
  
  String _getStrongTypingJsonString() {
  //Create the JSON which looks like our interface structure
    var jsonString = """
        {
  