human
I wrote the below code

    assert dispatch_args, 'No    dispatch    args    passed'
    dispatch_str = ('(%s,)' % ',    '.join(dispatch_args))
    def check(arguments, wrong=operator.ne, msg=''):
        'Make    sure    one    passes    the    expected    number    of    arguments'
        if wrong(len(arguments), len(dispatch_args)):
            raise TypeError(('Expected    %d    arguments,    got    %d%s' % (len(dispatch_args), len(arguments), msg)))
    def gen_func_dec(func):
        'Decorator    turning    a    function    into    a    generic    function'
        argset = set(getfullargspec(func).args)
        if (not (set(dispatch_args) <= argset)):
            raise NameError(('Unknown    dispatch    arguments    %s' % dispatch_str))
        typemap = {}
        def vancestors(*types):
            '\n                                                Get    a    list    of    sets    of    virtual    ancestors    for    the    given    types\n                                                '
            check(types)
            ras = [[] for _ in range(len(dispatch_args))]
            for types_ in typemap:
                for (t, type_, ra) in zip(types, types_, ras):
                    if (issubclass(t, type_) and (type_ not in t.__mro__)):
                        append(type_, ra)
            return [set(ra) for ra in ras]
        def ancestors(*types):
            '\n                                                Get    a    list    of    virtual    MROs,    one    for    each    type\n                                                '
            check(types)
            lists = []
            for (t, vas) in zip(types, vancestors(*types)):
                n_vas = len(vas)
                if (n_vas > 1):
                    raise RuntimeError(('Ambiguous    dispatch    for    %s:    %s' % (t, vas)))
                elif (n_vas == 1):
                    (va,) = vas
                    mro = type('t', (t, va), {}).__mro__[1:]
                else:
                    mro = t.__mro__
               ...

What's a good function header?

Here's a good function header?
assistant
#Here's a good function header.

def dispatch_on(*dispatch_args):