In the process of playing with Julia I ran into an interesting situation I demonstrated in this bug: https://github.com/JuliaLang/julia/issues/7320.
As I asked in the issue but which I should probably ask here, why does declaring `foo` to be `const` solve this issue? ... Okay, nevermind. It kind of makes "semi"-sense now. I guess function definitions implicitly create "const" variables, so to specialize a function in the first place, the name must be `const`.