public static TypePatternList read(VersionedDataInputStream s, ISourceContext context)
     throws IOException {
   short len = s.readShort();
   TypePattern[] arguments = new TypePattern[len];
   for (int i = 0; i < len; i++) {
     arguments[i] = TypePattern.read(s, context);
   }
   TypePatternList ret = new TypePatternList(arguments);
   if (!s.isAtLeast169()) {
     ret.readLocation(context, s);
   }
   return ret;
 }