docs: def multidispatch(*, nargs=None, nouts=None):
      """
          multidispatch decorate of both functools.singledispatch and func
      """
      def wrapper(f):
          return wraps(f)(MultiDispatchFunction(f, nargs=nargs, nouts=nouts))
  
      return wrapper