code: def __call__(self, *args, **kwargs):
      dynamic, static = partition((args, kwargs), _is_struct)
      dynamic_flat, dynamic_treedef = jtu.tree_flatten(dynamic)
  
      def _fn(*_dynamic_flat):
          _dynamic = jtu.tree_unflatten(dynamic_treedef, _dynamic_flat)
          _args, _kwargs = combine(_dynamic, static)
          _out = self.fn(*_args, **_kwargs)
          _out_dynamic, _out_static = partition(_out, is_array)
          return _out_dynamic, Static(_out_static)
  
      jaxpr, out_struct = jax.make_jaxpr(_fn, return_shape=True)(
          *dynamic_flat
      )  # pyright: ignore
      dynamic_out_struct, static_out = out_struct
      static_out = static_out.value
      return jaxpr, dynamic_out_struct, static_out
  
file_path: equinox/equinox/_make_jaxpr.py
imports: from collections.abc import Callable
  from typing import Any
  from typing_extensions import ParamSpec
  import jax
  import jax._src.traceback_util
  import jax.core
  import jax.tree_util
  from jaxtyping import PyTree
  from ._filters import combine, is_array, partition
  from ._module import Module, module_update_wrapper, Static
label_desc: Use image node_id 2 for calling the _MakeJaxpr obj's underlying member method code with example usage: obj.__call__() and returns: jaxpr,  dynamic_out_struct,  static_out, _out_dynamic,  Static