@Override
 public String toString() {
   StringBuffer buf = new StringBuffer();
   buf.append("(");
   for (int i = 0, len = typePatterns.length; i < len; i++) {
     TypePattern type = typePatterns[i];
     if (i > 0) {
       buf.append(", ");
     }
     if (type == TypePattern.ELLIPSIS) {
       buf.append("..");
     } else {
       buf.append(type.toString());
     }
   }
   buf.append(")");
   return buf.toString();
 }