Now adding function labels for all functions to allow fail to refer to functions in the surrounding scope (including with nesting), resolves #416