human
I wrote the below code

    class _KernelImpl(_Kernel, ):
        def __init__(self, context, builder, outer_sig):
            super(_KernelImpl, self).__init__(context, builder, outer_sig)
            loop = ufunc_find_matching_loop(ufunc, (outer_sig.args + (outer_sig.return_type,)))
            self.fn = ufunc_db.get_ufunc_info(ufunc).get(loop.ufunc_sig)
            self.inner_sig = typing.signature(*(loop.outputs + loop.inputs))
            if (self.fn is None):
                msg = "Don't    know    how    to    lower    ufunc    '{0}'    for    loop    '{1}'"
                raise NotImplementedError(msg.format(ufunc.__name__, loop))
        def generate(self, *args):
            isig = self.inner_sig
            osig = self.outer_sig
            cast_args = [self.cast(val, inty, outty) for (val, inty, outty) in zip(args, osig.args, isig.args)]
            with force_error_model(self.context, 'numpy'):
                res = self.fn(self.context, self.builder, isig, cast_args)
            dmm = self.context.data_model_manager
            res = dmm[isig.return_type].from_return(self.builder, res)
            return self.cast(res, isig.return_type, osig.return_type)
    return _KernelImpl

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

def _ufunc_db_function(ufunc):