The language implementation has other definition order issues, for example using a type in a declaration before it is defined. I understand done cases if thus have been resolved, but I still experience such problems in the newest release.
Also, if I were to define a global collection of my constraint functions, I expect it’s definition could not appear before all of those functions are defined.