I am learning patmatch. And found strange problem.
When I make an expression inside a proc A, and pass this expression to another proc B, which then uses patmatch on it, the pattern fails to match.
but calling proc B directly, with exactly same expression, patmatch does match.
This is confusing and not sure why it happens. It seems related to using symbol which was declared local vs. same symbol but is global. Here is an example
Call to foo() returns false. But call to boo() returns true. Even though I am using same expression.
What Am I doing wrong, and how to make it work in both cases?