code: public final FunctionType getBindReturnType(int argsToBind) {
      Builder builder =
          builder(registry)
              .withReturnType(getReturnType())
              .withTemplateKeys(getTemplateTypeMap().getTemplateKeys());
      if (argsToBind >= 0) {
        Node origParams = getParametersNode();
        if (origParams != null) {
          Node params = origParams.cloneTree();
          for (int i = 1; i < argsToBind && params.getFirstChild() != null; i++) {
            if (params.getFirstChild().isVarArgs()) {
              break;
            }
            params.removeFirstChild();
          }
          builder.withParamsNode(params);
        }
      }
      return builder.build();
    }
docs: Get the return value of calling "bind" on this function with the specified number of arguments.
  
  <p>If -1 is passed, then we will return a result that accepts any parameters.