Comment by neilv
It's impressive that wxpath does the DSL as an extension of XPath syntax. I hadn't quite thought of it that way.
I routinely used a mix of XPath and arbitrary code heavily for Web scraping (as implied in the intro for "https://docs.racket-lang.org/html-parsing/").
Then I made some DSLs for doing some of the common scraping coding patterns more concisely and declaratively, but the DSLs ended up in a Lisp-y syntax, not looking like XPath.
Making wxpath as an extension to the XPath DSL was a key goal of mine.
The hard part was ensuring the syntax looked and felt as XPath-y as possible.
Open to any feedback wrt to the syntax and semantics!