@Nullable
  private static PyParamSpecType getParamSpecType(@NotNull PsiElement element, @NotNull Context context) {
    if (!(element instanceof PyCallExpression assignedCall)) return null;

    final var callee = assignedCall.getCallee();
    if (callee == null) return null;

    final var calleeQNames = resolveToQualifiedNames(callee, context.getTypeContext());
    if (!calleeQNames.contains(TYPING_PARAM_SPEC) && !calleeQNames.contains(TYPING_EXTENSIONS_PARAM_SPEC)) return null;

    final var arguments = assignedCall.getArguments();
    if (arguments.length == 0) return null;

    final var firstArgument = arguments[0];
    if (!(firstArgument instanceof PyStringLiteralExpression)) return null;

    final var name = ((PyStringLiteralExpression)firstArgument).getStringValue();
    return new PyParamSpecType(name);
  }
@Nullable
  private static PyParamSpecType getParamSpecType(@NotNull PsiElement element, @NotNull Context context)