When you come back to this (no pressure), I'd like to understand better what's happening. Here are the macro expansions:
(let*
[R__59579
(clojure.core/case
workspace/example-2
(:a-pattern)
(clojure.core/list :an-action)
meander.match.runtime.epsilon/FAIL)]
(if (meander.match.runtime.epsilon/fail? R__59579) nil R__59579))
(let*
[R__59582
(clojure.core/case
example-2
(:a-pattern)
(clojure.core/list :an-action)
meander.match.runtime.epsilon/FAIL)]
(if (meander.match.runtime.epsilon/fail? R__59582) nil R__59582))
it seems to me that both of them should work :thinking_face:So haven't had a chance to look into it. But judging from the first error, if you pass us a symbol as the first arg, we consider that the "target". Then as a way to make debugging easier, we often use the target name to derive new variables (using gensym or some other safe way). In this case, it looks like we did that in some local function, but since the symbol is not a simple symbol, that broke in the function definition. I don't see that in your macroexpansion. But definitely see it in the spec error you sent.
Yep, it was exactly as I suspected. https://github.com/noprompt/meander/pull/169