anchor.diff:        return _castToRti(_Utils.arrayAt(typeArguments, index - 1));
       }
       throw AssertionError('Bad index $index for $environment');
  +  }
  +
  +  static Rti toGenericFunctionParameter(Object universe, Object item) {
  +    assert(_Utils.isNum(item));
  +    return _Universe._lookupGenericFunctionParameterRti(
  +        universe, _Utils.asInt(item));
     }
   }
   
  
positive.code:                 toType(universe(parser), environment(parser), pop(stack)));
              break;
  
            case Recipe.pushDynamic:
              push(stack, _Universe._lookupDynamicRti(universe(parser)));
              break;
  
negative.code:       push(stack, _Universe._lookupInterfaceRti(universe, name, arguments));
      } else {
        Rti base = toType(universe, environment(parser), head);
        switch (Rti._getKind(base)) {
          case Rti.kindFunction:
            push(stack,
                _Universe._lookupGenericFunctionRti(universe, base, arguments));
            break;
  
          default:
            push(stack, _Universe._lookupBindingRti(universe, base, arguments));
            break;
        }
      }
    }
  
  