I’d like to check if a variabe is of the form Tuple{Type{Complex}}
or Tuple{Type{Float64}}
or anything else where the inner-most thing is a type. Here are a couple of my failed attempts:
julia> Tuple{Type{Complex}} isa Tuple{Type{<:Type}}
false
julia> Tuple{Type{Complex}} isa Tuple{<:Type{<:Type}}
false
julia> Tuple{Type{Complex}} <: Tuple{Type{<:Type}}
false
julia> Tuple{Type{Complex}} <: Tuple{<:Type{<:Type}}
false
julia> Tuple{Type{Complex}} isa Type{Tuple{Type{<:Type}}}
false
julia> Tuple{Type{Complex}} isa Type{<:Tuple{Type{T}}} where T<:Type
false
julia> Tuple{Type{Complex}} isa Type{<:Tuple{<:Type{T}}} where T<:Type
false
julia> Tuple{Type{Complex}} isa Type{Tuple{<:Type{T}}} where T<:Type
false
julia> Tuple{Type{Complex}} isa Type{<:Tuple{<:Type{T}}} where T<:Type{Type}
false
How can I actually do this? i.e. what should I put after the isa
or <:
to get these (as well as anything with Float64
or any other type instead of Complex
) to be true?