Shouldn't higher-order functions be an optional feature, as in XQuery?
XPath a component used in other specifications, which are allowed to subset it or extend it, as long as they do not change the syntax or semantics of the things defined in the XPath spec. Given that, what does it mean for a feature to be optional?
We currently say that static typing is a optional feature in XPath, no other features are optional. That's because static typing actually does change the semantics, and we allow implementations to interpret the spec with or without static typing.
But I don't think we need to do the same for higher order functions.