Consider the following code:
module Foo
export g, h
module Bar
export f
f(::Int) = 2
end
using .Bar
f(::String) = "abc"
g() = f("a")
h() = f(12)
end
When I run this, if I try calling g() I get "abc" as expected. If I call h() I get an error message. Somehow, the definition of f(::Int) is being shadowed. Is that supposed to happen? How to fix this?
If I omit the definition of f(::String) then h() works.