code: def __call__(cls, *args, **kwargs):
      if _is_force_abstract[cls]:
          # Any other is-abstract checks will be handled in super().__call__.
          raise TypeError(
              "Cannot instantiate abstract `equinox.Module`."
          )
      # [Step 1] Modules are immutable -- except during construction. So defreeze
      # before init.
      post_init = getattr(cls, "__post_init__", None)
      initable_cls = _make_initable(
          cls, cls.__init__, post_init, wraps=False
      )
      # [Step 2] Instantiate the class as normal.
      self = super(_ModuleMeta, initable_cls).__call__(*args, **kwargs)
      assert not _is_abstract(cls)
      # [Step 3] Check that all fields are occupied.
      missing_names = {
          field.name
          for field in dataclasses.fields(cls)  # pyright: ignore
          # Not `vars` or `__dict__`, to allow for `property`s overwriting a field.
          # Not recommended, but allowable for backward compatibility.
          if field.name not in dir(self)
      }
      if len(missing_names):
          raise ValueError(
              f"The following fields were not initialised during __init__: "
              f"{missing_names}"
          )
      # Freeze.
      object.__setattr__(self, "__class__", cls)
      # [Step 4] Run any custom validators. (After freezing; as they run
      # unconditionally across the whole MRO, they aren't allowed to mutate.)
      for kls in cls.__mro__:
          try:
              check = kls.__dict__["__check_init__"]
          except KeyError:
              pass
          else:
              check(self)
      return self
  
imports: import abc
  import dataclasses
  import functools
  import inspect
  import types
  import warnings
  import weakref
  from collections.abc import Callable
  from typing import Any, cast, Optional, Protocol, TYPE_CHECKING, TypeVar, Union
  from typing_extensions import dataclass_transform, ParamSpec
  import jax._src.traceback_util
  import jax.tree_util
  import numpy
  from jaxtyping import Array, Bool, PyTreeDef
  from ._better_abstract import ABCMeta, dataclass
  from ._caches import internal_lru_caches
  from ._doc_utils import doc_repr
  from ._pretty_print import tree_pformat
  from ._tree import tree_equal
label_desc: Use image node_id 3 for calling the _ModuleMeta obj's underlying member method code with example usage: obj.__call__(cls) and returns: self