> For + and *, the matching code captures all of the matching
> arguments. e.g. given matchdeclare(aa, blurfp), then the code
> assigns to aa a single term such that blurfp(aa) => true,
> --or-- a product of terms such that map(blurfp, args(aa)) =>
> [true, true, true, ...].
>
> Only + and * are treated that way. I have considered extending
> to code to treat all commutative n-ary operators like that but
> never got around to it.
Now I understand, thanks for the clarification.
Martin