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

    if (no_recycling is None):
        no_recycling = []
    if (len(thunks) != len(order)):
        raise ValueError('Length    of    thunks    and    order    must    match', (len(thunks), len(order)))
    if post_thunk_old_storage:
        if (len(thunks) != len(post_thunk_old_storage)):
            raise ValueError('Length    of    thunks    and    post_thunk_old_storage    must    match', (len(thunks), len(post_thunk_old_storage)))
        def streamline_default_f():
            for x in no_recycling:
                x[0] = None
            try:
                for (thunk, node, old_storage) in izip(thunks, order, post_thunk_old_storage):
                    thunk()
                    for old_s in old_storage:
                        old_s[0] = None
            except Exception:
                raise_with_op(node, thunk)
        f = streamline_default_f
    elif nice_errors:
        def streamline_nice_errors_f():
            for x in no_recycling:
                x[0] = None
            try:
                for (thunk, node) in izip(thunks, order):
                    thunk()
            except Exception:
                raise_with_op(node, thunk)
        f = streamline_nice_errors_f
    else:
        def streamline_fast_f():
            for x in no_recycling:
                x[0] = None
            for thunk in thunks:
                thunk()
        f = streamline_fast_f
    return f

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

def streamline(fgraph, thunks, order, post_thunk_old_storage=None, no_recycling=None, nice_errors=True):