anchor.diff:  
       assert(Rti._getKind(environment) == Rti.kindInterface);
       String interfaceName = Rti._getInterfaceName(environment);
  -    var rule = _Universe.findRule(universe, interfaceName);
  +    Object rule = _Universe.findRule(universe, interfaceName);
       assert(rule != null);
       String recipe = TypeRule.lookupTypeVariable(rule, name);
       return _Universe.evalInEnvironment(universe, environment, recipe);
  
positive.code:   if (Rti._isCheck(testRti, object)) return object;
  
    Rti objectRti = instanceOrFunctionType(object, testRti);
    var message = _Error.compose(object, objectRti, _rtiToString(testRti, null));
    throw _TypeError.fromMessage(message);
  }
  
  /// Called from generated code.
  checkTypeBound(Rti type, Rti bound, variable) {
    if (isSubtype(_theUniverse(), type, bound)) return type;
    var message = "Type '${_rtiToString(type, null)}'"
        " is not a subtype of type '${_rtiToString(bound, null)}'"
        " of '${_Utils.asString(variable)}'";
    throw _TypeError.fromMessage(message);
  
negative.code: 
    static Rti _createGenericFunctionRti(Object universe, Rti baseFunctionType,
        Object bounds, String canonicalRecipe) {
      Rti rti = Rti.allocate();
      Rti._setKind(rti, Rti.kindGenericFunction);
      Rti._setPrimary(rti, baseFunctionType);
      Rti._setRest(rti, bounds);
  