code: def filter_primitive_bind(prim: jax.core.Primitive, *args) -> PyTree:
      """Calls a primitive that has had its rules defined using the filter
      functions above.
      """
      assert prim.multiple_results
      # If `args` constains a Jaxpr or ClosedJaxpr in its leaves, then it ends up as a
      # member of the `static` tuple. This is important to ensure that jaxpr-rewriting
      # passes are able to find it.
      # (E.g. if `eqx.filter_closure_convert(...)` is an argument and we apply
      # `jax.core.jaxprs_in_params`.)
      flat, treedef = jtu.tree_flatten(args)
      dynamic = [x for x in flat if is_array(x)]
      static = tuple(
          _missing_dynamic if is_array(x) else x for x in flat
      )
      flatten = Flatten()
      flat_out = prim.bind(
          *dynamic, treedef=treedef, static=static, flatten=flatten
      )
      treedef_out, static_out = flatten.get()
      return combine(
          jtu.tree_unflatten(treedef_out, flat_out), static_out
      )
  
imports: import functools
  from typing import Any
  import jax
  import jax.core
  import jax.interpreters.ad
  import jax.interpreters.batching
  import jax.interpreters.mlir
  import jax.tree_util
  from jaxtyping import PyTree
  from .._filters import combine, is_array, is_array_like, partition
  from .._tree import tree_equal
label_desc: Use image node_id 14 for calling a global function with example usage: filter_primitive_bind(prim) and returns: combine