Yes, it's like any other parametric type that way. Currently you have to use a typealias that switches parameter order (or omits the earlier one) to get the behavior you want. In the future we may have syntax for this.
Btw, the top type is called Any. ANY is a hack to let you hint to the compiler that it should not specialize a method on an argument. On Fri, Jan 8, 2016 at 11:26 AM, Jamie Brandon <[email protected] > wrote: > I'm a little surprised by this: > > julia> Hamt.NArray{4,Int64} <: Hamt.NArray{ANY,Int64} > true > > julia> Type{Hamt.NArray{4,Int64}} <: Type{Hamt.NArray{ANY,Int64}} > false > > I was trying to make call specialise on T but not N with: > > call{T}(t::Type{NArray{ANY,T}}) = ... > > This works perfectly for values: > > Base.getindex{T}(narray::NArray{ANY,T}, ix::Integer) = ... > > Is Type completely invariant? >
