anchor.diff:      return _installTypeTests(universe, rti);
     }
   
  -  static Rti _lookupFutureOrRti(universe, Rti baseType, bool normalize) {
  +  static Rti _lookupFutureOrRti(
  +      Object? universe, Rti baseType, bool normalize) {
       String key = _canonicalRecipeOfFutureOr(baseType);
       var cache = evalCache(universe);
  -    var probe = _cacheGet(cache, key);
  -    if (probe != null) return _castToRti(probe);
  +    var probe = _Utils.mapGet(cache, key);
  +    if (probe != null) return _Utils.asRti(probe);
       return _installRti(
           universe, key, _createFutureOrRti(universe, baseType, key, normalize));
     }
   
     static Rti _createFutureOrRti(
  -      universe, Rti baseType, String key, bool normalize) {
  +      Object? universe, Rti baseType, String key, bool normalize) {
       if (normalize) {
         int baseKind = Rti._getKind(baseType);
         if (isTopType(baseType) || isObjectType(baseType)) {
  
positive.code:   }
  
    static Rti _lookupFunctionRti(
        Object universe, Rti returnType, _FunctionParameters parameters) {
      String key = _canonicalRecipeOfFunction(returnType, parameters);
      var cache = evalCache(universe);
      var probe = _cacheGet(cache, key);
      if (probe != null) return _castToRti(probe);
      return _installRti(universe, key,
          _createFunctionRti(universe, returnType, parameters, key));
    }
  
    static Rti _createFunctionRti(Object universe, Rti returnType,
        _FunctionParameters parameters, String key) {
      Rti rti = Rti.allocate();
      Rti._setKind(rti, Rti.kindFunction);
  
negative.code: 
    static Rti _getGenericFunctionBase(Rti rti) {
      assert(_getKind(rti) == kindGenericFunction);
      return _Utils.asRti(_getPrimary(rti));
    }
  
    static JSArray _getGenericFunctionBounds(Rti rti) {
  