>
>
> Are there other pitfalls to auto-merging in user-space-only?
>
>
>>>
Tom,
The problem with auto merging in user code (as I see it)
module a
export f
f(x) = 4
f(x::Int)=5
user code:
using a
f(5) # gives 5 fine
f(6.0)+1 # gives 5 fine
f(5.0) # gives 4, fine
now another module:
module b # totally separate from a, a and b have nothing in common except
both use the verb f
export f
f(x::Float64) = "four"
user code:
using a,b # assuming methods of f() are auto-merged in user space
# existing code
f(5) # still gives 5, ok
f(6.0)+1 # can't add string and int, at least this breaks noisily
f(5.0) # "four"?, existing code is silently changed :(
Consider also how much more complex the problem becomes if f() is generic,
how many f{T}(x::T) exist and have to be merged? Don't know, depends on
usage.