It's not easy to see whether an expression can act as a "good" function.
A good function refers to an operater that transforms symbolic entities like 1+x^2 or numeric entities like 1+Sqrt[2] into a new one.
(Remember that we only discuss the function,but not the function of function here.)
For example,
Composition[#1^2&,InverseFunction[1/#1&]] is a good function,
but Composition[1[3],2[2]] isn't.
So how to determine whether an expression can act as a "good" function in general cases?