human
Here's a good function header given the following:
I wrote the below code

    def ggnvp_maker(*args, **kwargs):
        (f_vjp, f_x) = make_vjp(f, f_argnum)(*args, **kwargs)
        (g_hvp, grad_g_x) = make_vjp(grad(g))(f_x)
        (f_jvp, _) = make_vjp(f_vjp)(vspace(grad_g_x).zeros())
        def ggnvp(v):
            return f_vjp(g_hvp(f_jvp(v)))
        return ggnvp
    return ggnvp_maker

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

def make_ggnvp(f, g=(lambda x: ((1.0 / 2) * np.sum((x ** 2), axis=(-1)))), f_argnum=0):