Consider:
julia> abstract A{T}
julia> type B{X, Y} <: A{typejoin(X, Y)}
x::X
y::Y
end
julia> super(typeof(B(1, "a")))
A{ASCIIString}
julia> super(typeof(B("a", 1)))
A{Int64}
Which is odd.
And,
julia> type C{X} <: A{super(X)}
x::X
end
ERROR: `super` has no method matching super(::Type{X})
Which I could not understand, X seems to be treated as something that
exists when the type declaration is interpreted...
How does Julia deal with expressions in place of super type parameters?
If possible, I would like to dispatch on the typejoin of `X` and `Y` in
`B{X, Y}`. How can I do this?
Thanks,
Shashi