code: def __init_subclass__(cls, **kwargs):
      super().__init_subclass__(**kwargs)
      if Protocol not in cls.__bases__:
          base_names = ", ".join(b.__name__ for b in cls.__bases__)
          raise TypeError(
              f"{cls.__name__} is a Protocol and should not be subclassed by "
              "a non-Protocol type. If you intended your subclass to be a "
              "protocol then you need to explicitly additionally extend "
              f"Protocol: `class {cls.__name__}({base_names}, Protocol)`."
          )
  
file_path: dm-haiku/haiku/_src/typing.py
imports: import abc
  from collections.abc import Mapping, MutableMapping, Sequence
  import typing
  from typing import Any, Callable, Protocol, runtime_checkable
  import jax
label_desc: Use image node_id 1 for calling the StrictProtocol obj's underlying member method code with example usage: obj.__init_subclass__(cls) without return types