@NotNull
  public static String getDescriptor(Iterable<TypeRepr> argTypes, @NotNull TypeRepr returnType) {
    final StringBuilder buf = new StringBuilder();

    buf.append("(");

    for (TypeRepr t : argTypes) {
      buf.append(t.getDescriptor());
    }

    buf.append(")");
    buf.append(returnType.getDescriptor());

    return buf.toString();
  }
@NotNull
  public static String getDescriptor(Iterable<TypeRepr> argTypes, @NotNull TypeRepr returnType)