Sometimes we have to deal with a dilemma of `void foo(Type)` vs `void foo(const Type &)`:
a) these are different overloads of the same function
b) they can be mixed with other overloads e.g. `void foo()`
This problem occurs particularly in signal-slot connections as qmltc attempts to connect a signal handler to a signal via QObject::connect() using its typed interface.
The overloads themselves can be resolved with qOverload<Ts...>() utility but that is not good enough on its own since qmltc needs to provide exact types to this function (and it currently fails to do so for `void foo(const Type &)` emitting `qOverload<Type>(&ObjType::foo)`)