Sorry for reviving this ancient thread, but I just stumbled upon this question on the search for something else and just would like to know what’s going on in the example by @schlichtanders
The answers so far didn’t really explain the reasons for the behavior.
Is this behavior expected (checked in Julia 1.8 and 1.9)?
julia> (Int,) isa Tuple{Type}
true
julia> (Int,) isa Tuple{Type{Int}}
false
My understanding so far was that X isa T implies that (X,) isa Tuple{T}. The example shows that this is not true, and it seems related to how Type works. But it feels like the implication should be true, given that Tuple is used to represent function signatures and e.g. the following works