anchor.diff:      map[keyMetatype] = metatypeMethod;
     }
     map[keyName] = MirrorSystem.getName(mm.simpleName);
  -  map[keyPackedAnns] = 5; // TODO 'shared formal' for now
  +
  +  map[keyPackedAnns] = annotationBits["shared"];
  +  if (forceAbstract || mm.isAbstract) {
  +    // FIXME for now, making all members "default" since we're not getting
  +    // reliable info for implemented members for classes like IterableBase
  +    //map[keyPackedAnns] |= annotationBits["formal"];
  +    map[keyPackedAnns] |= annotationBits["default"];
  +  }
  +  else {
  +    map[keyPackedAnns] |= annotationBits["default"];
  +  }
  +
     if (!mm.isGetter) {
       map[keyParams] = [parametersToList(mm.parameters, from)];
     }
  
positive.code:   }
    map[keyMetatype] = metatypeGetter;
    map[keyName] = MirrorSystem.getName(mm.simpleName);
    map[keyPackedAnns] = 5; // TODO 'shared formal' for now
  
    if (mm.isStatic) {
      map[keyStatic] = true;
  
negative.code: };
  
  Map<String, Map<String, Object>> methodsToMap(
      Iterable<DeclarationMirror> declarations, TypeMirror from,
      bool forceAbstract) {
  
    var map = new Map<String, Map<String, Object>>();
    for (var d in declarations) {
      if (d is MethodMirror && d.isRegularMethod) {
  