If I run the following, I get the results show to the right (in comments),
it appears array construction fails to raise to the common
parent type under certain conditions, is there a way round
this? Alternatively where is this code implemented ?
abstract Foo{K}
type Wow{K,V} <: Foo{K} end
type Bar{K,V} <: Foo{K} end
a = Wow{Int64, Int64}()
b = Wow{Int64, Float64}()
c = Bar{Int64, Int64}()
d = Bar{Int64, String}()
println( "******" )
println( typeof( [ a ])) #Array{Wow{Int64,Int64},1}
println( typeof( [ a, b ])) #Array{Wow{K,V},1}
println( typeof( [ a, c ])) #Array{Foo{Int64},1}
println( typeof( [ a, b, c ])) #Array{Foo{Int64},1}
println( typeof( [ a, c, b ])) #Array{Foo{Int64},1}
println( typeof( [ a, b, c, d ])) #Array{Foo{K},1}