Currently `any` captures all elements in `@val`, not just first one. I agree this might be confusing, so maybe renaming it to `findAll` and `find` might be a good idea.
Indices of matched elements are not accessible in any predicates right now, but that could be fixed by injecting `matches: seq[int]` in the scope. Do you think it is necessary to do this?
