code: def pack_into_dict(
      src: hk.Params,
      dst: MutableMapping[str, Any],
      prefix: str,
      state: bool = False,
      check_param_reuse: bool = True,
  ):
      """Puts items from src into dst, with an added prefix."""
      for key, value in src.items():
          new_key = f"{prefix}/{key}" if prefix else key
          if check_param_reuse and new_key in dst:
              raise ValueError(
                  f"Key '{new_key}' already exists in the destination params. To "
                  "prevent accidental parameter re-use during lift, you can't re-use a "
                  "parameter already defined in the outer scope."
              )
          value = dict(value)
          if state:
              value = {
                  k: base.StatePair(v, v) for k, v in value.items()
              }
          dst.setdefault(new_key, {})
          dst[new_key].update(value)
  
imports: from collections.abc import Mapping, MutableMapping
  import functools
  from typing import Any, Callable, Optional, TypeVar
  from haiku._src import base
  from haiku._src import data_structures
  from haiku._src import module
  from haiku._src import transform
  from haiku._src.typing import LiftingModuleType
label_desc: Use image node_id 1 for calling a global function with example usage: pack_into_dict(src, dst, prefix, state, check_param_reuse) without return types