What is difference between Type{T} and T

I think you are confusing things. isa shows if the type of the first argument <: the second argument. So does not make sense to me to use isa to establish any ordering/tree, you should be using <: for it.

julia> Any <: Type
false

julia> Type <: Any
true

julia> Any <: DataType
false

julia> DataType <: Any
true

You should not use isa passing a type as the first argument, because it will always be the same as DataType <: second_isa_argument because the type of any type will be DataType.

1 Like