Não tenho certeza se isso é esperado ou não, mas a seguinte declaração não analisa
+(x::T,y::T) where {T} = #
Considerando que isso faz corretamente
+{T}(x::T,y::T) = #
Eu sei que funciona se você usar parênteses, mas parece haver uma inconsistência quando não há parênteses.
A versão sem parênteses deve, em minha opinião, ser proibida. +(1, 2)
ainda parece um operador unário aplicado a uma tupla.
(+)(1, 2)
ou (+(1, 2))
ainda se parece com um operador unário aplicado a uma tupla.
(+(1, 2))
sim, mas (+)(1, 2)
está bem.
Comentários muito úteis
A versão sem parênteses deve, em minha opinião, ser proibida.
+(1, 2)
ainda parece um operador unário aplicado a uma tupla.