@NotNull
  @Override
  public String getName() {
    if (myParameters == null) {
      return String.format("ParamSpec(\"%s\")", myName);
    }
    else {
      final TypeEvalContext context = TypeEvalContext.codeInsightFallback(null);
      return String.format("[%s]",
                           StringUtil.join(myParameters, param -> {
                                             if (param != null) {
                                               final PyType type = param.getType(context);
                                               return type != null ? type.getName() : PyNames.UNKNOWN_TYPE;
                                             }
                                             return PyNames.UNKNOWN_TYPE;
                                           },
                                           ", "));
    }
  }
@NotNull
  @Override
  public String getName()