class_docstr: Protocol for Module like types that are Callable.
  
  Being a protocol means you don't need to explicitly extend this type in order
  to support instance checks with it. For example, :class:`Linear` only extends
  :class:`Module`, however since it conforms (e.g. implements ``__call__``) to
  this protocol you can instance check using it::
  
  >>> assert isinstance(hk.Linear(1), hk.SupportsCall)
class_docstr_tok: ["Protocol","for","Module","like","types","that","are","Callable",".","Being","a","protocol","means","you","do","n't","need","to","explicitly","extend","this","type","in","order","to","support","instance","checks","with","it",".","For","example",",",":","class",":","`","Linear","`","only","extends",":","class",":","`","Module","`",",","however","since","it","conforms","(","e.g",".","implements","``","__call__","``",")","to","this","protocol","you","can","instance","check","using","it",":",":",">",">",">","assert","isinstance","(","hk.Linear","(","1",")",",","hk.SupportsCall",")"]
code: def __call__(self, *args, **kwargs):
      raise NotImplementedError
  
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 SupportsCall obj's underlying member method code with example usage: obj.__call__() without return types