I find the error message here unclear, it seems to me that the zeros for this new type is clearly defined. What is going on here? Is there any reason not to define new methods to zeros explicitly?
julia> struct A
n::Int
x::Vector{Float64}
end
julia> Base.zeros(::A, n) = A(0, zeros(n))
julia> zeros(A, 3)
ERROR: MethodError: no method matching zero(::Type{A})