What is wrong with this rule?



> 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.