code: def captures(self) -> List[Expr]:
      # The lambda lives inside of a kernel following the dispatcher API, so its outer context is the dispatcher arguments
      # We also need to read the "reapply views" TLS at the time that the functionalization kernel was executed,
      # and plumb it into the lambda.
      outer_ctx = dispatcher.arguments(self.g.view.func) + [
          functionalization.reapply_views_binding,
          functionalization.inverse_return_mode_binding,
      ]
      capture_bindings = functionalization.capture_arguments(
          self.g.view.func, is_reverse=self.is_reverse
      )
      # allow_expensive_conversions is set because we want to convert
      # some reference types (IntArrayRef) to value types (vector<int64_t>).
      capture_exprs = translate.translate(
          outer_ctx,
          capture_bindings,
          method=False,
          allow_expensive_conversions=True,
      )
      return capture_exprs
  
imports: from dataclasses import dataclass
  from typing import Iterator, List, Optional, Sequence, Set, Tuple, Union
  from torchgen.model import BackendIndex, FunctionSchema, NativeFunction, NativeFunctionsGroup, NativeFunctionsViewGroup
  from .types_base import Binding, CType, Expr
  from torchgen.api import cpp, dispatcher, functionalization, native, structured, translate
label_desc: Use image node_id 1 for calling the FunctionalizationLambda obj's underlying member method code with example usage: obj.captures() and returns: capture_exprs