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
.