How to check that callable has a specific signature including params and returning type? I have two families of functions which update variables in two different ways: