Intialize types and define operators within them

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.