How can I "override" a method by providing a more specific one, so that the 
new one will be used in some other module?

For example … in a.jl I have:

module A

export Alpha, identify

abstract Alpha

identifier(::Alpha) = "alpha"
identify(a::Alpha) = println(identifier(a))

end

and in b.jl I have:

using A

type Beta <: Alpha
end

identifier(::Beta) = "beta"

b = Beta()
identify(b)

Naturally, this prints out alpha. Is there any way to get the specialized 
identifier function here to execute instead of the more general one? Or 
maybe I should structure things differently instead? (Or am I simply 
missing some module-related declarations?)

Reply via email to