Ok. It the call types seem consistently overwritten by any new function I define, so confusions can only arise if I try to call a function which was not defined to be called that way. I mean:
struct test
a::Int64
test() = new(1)
end
test(a) = a
test(2)
> 2 # ok
test() # this would throw an error if the struct didn't exist
> test(1) # ok
test() = 3 # test() is redefined
test()
> 3 # ok
The only possible confusion would be that test() would not throw an error in the first case.