> Can you describe on which set of functions your algorithm works?

The algorithm is supposed to work with any sympy function, but I don't have strong arguments to support that. I tried to run the algorithm on some simple cases of special functions and it worked as expected.

```
In [4]: _has_only_supported_func(Heaviside(x), x)
Out[4]: False

In [5]: _has_only_supported_func(DiracDelta(x), x)
Out[5]: False

In [9]: _has_only_supported_func(besseli(x, y), x)
Out[9]: False

In [10]: _has_only_supported_func(gamma(x), x)
Out[10]: False
```