code: public boolean isSuperType(Type t, Type s) {
          switch (t.getTag()) {
          case ERROR:
              return true;
          case UNDETVAR: {
              UndetVar undet = (UndetVar)t;
              if (t == s ||
                  undet.qtype == s ||
                  s.hasTag(ERROR) ||
                  s.hasTag(BOT)) {
                  return true;
              }
              undet.addBound(InferenceBound.LOWER, s, this);
              return true;
          }
          default:
              return isSubtype(s, t);
          }
      }
docs: Is t a supertype of s?