text: #pragma once
  
  #include <torch/csrc/jit/ir/ir.h>
  
  namespace torch {
  namespace jit {
  
  // Try to replace an op that takes a list input with another op that takes a
  // variadic number of arguments.
  TORCH_API bool UseVariadicOp(
      const std::shared_ptr<Graph>& graph,
      NodeKind op,
      NodeKind variadic_op);
  
  TORCH_API bool RemoveListMutationAndUseVariadicOp(
      const std::shared_ptr<Graph>& graph,
      NodeKind op,
      NodeKind variadic_op);
  
  // Convenient functions for replacing aten::stack/aten::cat with their
  // variadic versions.
  TORCH_API bool UseVariadicCat(const std::shared_ptr<Graph>& graph);
  TORCH_API bool RemoveListMutationAndUseVariadicCat(
      const std::shared_ptr<Graph>& graph);
  
  TORCH_API bool UseVariadicStack(const std::shared_ptr<Graph>& graph);
  TORCH_API bool RemoveListMutationAndUseVariadicStack(
      const std::shared_ptr<Graph>& graph);
  
  } // namespace jit
  } // namespace torch
  