anchor.diff:        entries.add(new NameValuePair(
             name: entries.length.toString(), value: entryWrapper));
       });
  +    addInstanceMembers(object, entries);
       addMetadataChildren(object, entries);
       return entries.toList();
  +  }
  +
  +  // We've formatted as a Map, but we may want to see the internals
  +  // of the Map, particularly for domain objects that implement Map.
  +  // Add an ObjectFormatter view underneath.
  +  void addInstanceMembers(object, Set<NameValuePair> ret) {
  +    ret.add(new NameValuePair(
  +        name: "[[instance members]]",
  +        value: object,
  +        config: JsonMLConfig.asObject));
     }
   }
   
  
positive.code:     // The order of formatters matters as formatters earlier in the list take
      // precedence.
      _formatters = [
        new ClassFormatter(),
        new TypeFormatter(),
        new NamedConstructorFormatter(),
  
negative.code:   static const skipDart = const JsonMLConfig("skipDart");
    static const keyToString = const JsonMLConfig("keyToString");
    static const asClass = const JsonMLConfig("asClass");
    static const asObject = const JsonMLConfig("asObject");
    toString() => "JsonMLConfig($name)";
  }
  
  int _maxSpanLength = 100;
  