KCL functions are a weird edge case, and the `FunctionExpression` field should not be included in its public API. That field is only there for implementation details, it shouldn't be exposed to users. What's worse is that `FunctionExpression` includes a `Program` so every single AST node wound up being included in our docs.