class_docstr: Dispatch methods based on type signature
  
  See Also:
      Dispatcher
code: def __call__(self, *args, **kwargs):
      types = tuple([type(arg) for arg in args])
      func = self.dispatch(*types)
      if not func:
          raise NotImplementedError(
              "Could not find signature for %s: <%s>"
              % (self.name, str_signature(types))
          )
      return func(self.obj, *args, **kwargs)
  
imports: from __future__ import annotations
  from warnings import warn
  import inspect
  from .conflict import ordering, ambiguities, super_signature, AmbiguityWarning
  from .utils import expand_tuples
  import itertools
label_desc: Use image node_id 3 for calling the MethodDispatcher obj's underlying member method code with example usage: obj.__call__() and returns: func