> if you have a rule like e*f(x)*g(y), then it could try to match
> 3*f(4)*g(5) by matching
> e= 3*f(4) and then failing.
>
> You don't want e to match "anything at all". You want e to match
> something not involving any f( ..).
Sure, it might try matching e=3*f(4) to start, but when it fails, it
had better backtrack and try e=3. If it doesn't, that seems like a
bug.