I think that we should provide consistent behavior here. I propose that, _given_ case insensitive evaluation and _given_ two functions with the same name, one with capital letters in the name, one without, the function name without capital letters takes precedent.

That is, if `name_1.lower() != name_1`; `name_2.lower() == name_2`, and `name_1.lower() == name_2`, we should take the definition provided by `name_2`, always. Thoughts? I realize this is imperfect - for example, what do we do when `name_1 = Func` and `name_2 = fuNc`?