Reading through Why it's nice to quote , section 3 gives an example of splicing a variable identifier in a quasivoc.
subst [:lam | $exp:e1 $exp:e2 |] xy = let e1' = subst e1 xy e2' = subst e2 xy in [:lam | $exp:e1' $exp:e2' |]
I understand why recursive subst calls are made outside of [:lam| ... |] [:lam| ... |] , because the antiVarE function in section 3.2 builds a TH.varE outside the variable name.
My question is how much work will it take to support arbitrary expression loops outside of the variable name?
For instance:
subst [:lam | $exp:e1 $exp:e2 |] xy = [:lam | $exp:(subst e1 xy) $exp:(subst e2 xy) |]
source share