matchdeclare matching functions or an alternative?



Hello,

I am wondering if there is a way to use matchdeclare to do the following:

matchdeclare(ff(xx), isfunction(ff,xx))
Where ff is supposed to be a function of xx.

If it is possible, how?
If not what do you suggest as an alternative?
I am looking for write a simplification rule which allows an operator to
"propagate" through implicit/explicit operators. By implicit I mean that
ff(xx) could be something as simple as xx+1. By explicit I mean something
like sin(xx). This is for implementing a custom "chain-rule."

Thanks in advance