meander

All things about https://github.com/noprompt/meander Need help and no one responded? Feel free to ping @U5K8NTHEZ
william 2021-02-23T00:00:30.018Z

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:

jimmy 2021-02-23T02:10:56.018300Z

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.

jimmy 2021-02-23T03:30:12.018500Z

Yep, it was exactly as I suspected. https://github.com/noprompt/meander/pull/169

🙌 1