https://groups.google.com/forum/#!topic/julia-users/sk8Gxq7ws3w
On Mon, Apr 27, 2015 at 5:42 PM, Andrei Zh <[email protected]> wrote: > Let's say, we have 2 modules: > > module A > export foo > foo(n::Int) = println("A") > end > > > module B > export foo > foo(s::String) = println("B") > end > > and then in REPL: > > julia> using A > julia> using B > !julia> methods(foo) > # 1 method for generic function "foo": > > > foo(s::String) at /home/<user>/.julia/v0.3/B/src/B.jl:4 > > so method `A.foo` is shadowed. But at the same time purely in REPL or > single module: > > julia> bar(x::Int) = println("#1") > bar (generic function with 1 method) > > > julia> bar(s::String) = println("#2") > bar (generic function with 2 methods) > > > !julia> methods(bar) > # 2 methods for generic function "bar": > > > bar(x::Int64) at none:1 > bar(s::String) at none:1 > > Methods are added to a function. > > My question is what is the idea behind this behavior and what to do if `A` > and `B` are 2 independent modules, having same method `foo` by coincidence > (expect for using qualified names, of course)? > > > > >
