Allow variables in the payload of `%{read*:<path>}`
The payload for %{read:<path>} (also read-lines and read-strings) is treated as strings but there is no reason is couldn't be expanded further.
Yeah, this is a good point. Unfortunately, our little DSL for pforms is quite limited. So in order to implement this feature we need an alternative way (preferably using sexps) to express such pforms.
One possibility is to extend the existing syntax to allow %{<sexp>}. Macros %{foo:bar} could be considered as shorthands for %{(foo "bar")}. It is not very pretty though.
I suppose doing %(<sexp...>) could break user code without a version gate. That could be just more pleasant than using both curly and curvy parentheses