I'm trying to understand the structure of arrays in the Julia Type Graph. This seems very counter-intuitive to me:
julia> Int64 <: Number
true
julia> Array{Int64,1} <: Array{Number,1}
false
julia> Array{Int64,1} <: Array{Int,1}
true
It seems that a <: b is not sufficient for Array{a,1} <: Array{b,1}. When does Array{a,1} <: Array{b,1}?
A practical corollary: how can I type-declare an abstract array of numbers?