anchor.diff:    if (obj is List) {
       List<Object> list = new List<Object>();
       for (var e in obj) {
  -      list.add(_serialize(e));
  +      list.add(_serializeObject(e));
       }
       return list;
     }
  
positive.code:  * a [ArgumentError] if the input is a scalar value, as it will not
   * produce valid JSON.
   */
  dynamic serialize(Object obj) {
    if (obj == null) {
      return null;
    }
    if (_isPrimitiveType(obj)) { // entry value can only be object, map, or list.
      throw new ArgumentError('Cannot serialize a scalar value into a JSON representation.');
    }
    return _serialize(obj);
  }
  
  /**
   * Recursively serializes the provided [obj].
   * For internal use only.
   */
  dynamic _serialize(Object obj) {
    if (obj == null) {
      return null;
    }
  
negative.code:   return mm.isGetter && !mm.isStatic && !mm.isPrivate;
  }
  
  /**
   * Checks if the following [mm] getter method has a corresponding setter method.
   * Returns `true` if one is found, false otherwise.
   */
  bool _hasGetter(mirrors.ClassMirror cm, mirrors.MethodMirror mm) {
    var setterDec = cm.instanceMembers[new Symbol(mirrors.MirrorSystem.getName(mm.simpleName) + '=')]; 
    return setterDec != null && !setterDec.isPrivate && !setterDec.isStatic && setterDec.isSetter;
  }
  