code: public boolean isSubtypes(List<Type> ts, List<Type> ss) {
          while (ts.tail != null && ss.tail != null
                 /*inlined: ts.nonEmpty() && ss.nonEmpty()*/ &&
                 isSubtype(ts.head, ss.head)) {
              ts = ts.tail;
              ss = ss.tail;
          }
          return ts.tail == null && ss.tail == null;
          /*inlined: ts.isEmpty() && ss.isEmpty();*/
      }
docs: Are corresponding elements of ts subtypes of ss?  If lists are
  of different length, return false.