code: def bind(self, call, *args, **params):
      # TODO(frostig,mattjj): This doesn't handle closures yet, which is
      # a bit involved. Closures are complicated by us binding `call`
      # twice in the JVP rule for custom transpose. The `env_trace_todo`
      # output by `process_env_traces` due to one of those two bindings
      # should be passable to the other, and need to be passed onward
      # since the second bind is deferred by partial eval (since it
      # typically receives unknowns)
      top_trace = core.find_top_trace(args)
      tracers = map(top_trace.full_raise, args)
      outs = top_trace.process_custom_transpose(
          self, call, tracers, **params
      )
      return outs
  
imports: from __future__ import annotations
  import functools
  from typing import Any, Callable
  from jax._src import ad_util
  from jax._src import api_util
  from jax._src import core
  from jax._src import custom_api_util
  from jax._src import linear_util
  from jax._src import source_info_util
  from jax._src import traceback_util
  from jax._src import util
  from jax._src.interpreters import ad
  from jax._src.interpreters import mlir
  from jax._src.interpreters import partial_eval
  from jax._src.interpreters import xla
  from jax._src.tree_util import tree_flatten, tree_leaves, tree_map, tree_structure, treedef_tuple, tree_unflatten
label_desc: Use image node_id 1 for calling the CustomTransposePrimitive obj's underlying member method code with example usage: obj.bind(call) and returns: outs