The problem was to pattern match on two values with a guard predicate checking condition across both values.
Specifically to check whether account has enough limit to perform a transaction. I wanted to extract current account limit and transaction amount from incoming event, then check whether amount is less then the limit.
Below are implementations in three different pattern matching libraries.
Meander is the nicest. Supports the behaviour I would expect.
core.match couldn't bind the values from the matched maps to pass to the guard predicate. I had to destructure the maps to get the values within the predicate, kinda defeating the purpose of the pattern matching.