Wouldn’t specifying types already avoid situations in which functions become not type-stable.
For example, if I have
f(x,y) = x*y
and both variables are not restricted to be of the same type, this might actually cause the code to slow down. In my case I only work with Floats, so it seemed appropiate to restrict all functions to handle Floats only.
Zygote looks interesting indeed! Thanks for the link