anchor.diff:    "serializable" : 1 << 11
   };
   
  +TypeMirror voidType = currentMirrorSystem().voidType;
  +
   Set<LibraryMirror> allowedLibraries;
   
   /*
  
positive.code:       map[keyModule] = tmModuleName;
      }
  
      var tam = typeArgumentMap(tm.typeArguments, from);
      if (tam.isNotEmpty) {
        map[keyTypeParams] = tam;
      }
  
negative.code:       map["\$pt"] = "f";
        // Don't erase! Callable's are generic, so there is no automatic
        // type erasure.
  
        // For the return type of a function that is a parameter, we want
        // covariant (i.e. dynamic=Anything) for maximum flexibility
  
        // TODO: but what about when the function is a parameter of a
        //    function of a parameter! parametersToList() needs a
        //    covariant=true param.
        map[keyType] = typeToMap(pt.returnType, from, false, false, true);
        map[keyMetatype] = metatypeParameter;
        map[keyName] = MirrorSystem.getName(pm.simpleName);
        // TODO these param types should be contravariant (i.e. Nothing)...
        List plist = parametersToList(pt.parameters, from);
        if (plist.isNotEmpty) {
          map[keyParams] = [plist];
        }
      }
      else {
        // covariant (i.e. dynamic=Anything)
        map[keyType] = typeToMap(pm.type, from);
        map[keyMetatype] = metatypeParameter;
        map[keyName] = MirrorSystem.getName(pm.simpleName);
  