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:   return map;
  }
  
  Map<String, Object> methodToMap(MethodMirror mm, TypeMirror from) {
    var map = new Map();
    map[keyType] = typeToMap(mm.returnType, from); // TODO what about void?
  
  
negative.code: const metatypeTypeParameter   = "tp";
  const metatypeParameter       = "prm";
  
  Map<String, int> annotationBits = {
    "shared" : 1,
    "actual" : 1 << 1,
    "formal" : 1 << 2,
    "default" : 1 << 3,
    "sealed" : 1 << 4,
    "final" : 1 << 5,
    "native" : 1 << 6,
    "late" : 1 << 7,
    "abstract" : 1 << 8,
    "annotation" : 1 << 9,
    "variable" : 1 << 10,
    "serializable" : 1 << 11
  };
  
  Set<LibraryMirror> allowedLibraries;
  
  /*
  