Is union abstract type?

This is the documented behavior of isabstracttype:

Determine whether type T was declared as an abstract type (i.e. using the abstract type syntax). Note that this is not the negation of isconcretetype(T). [emphasis added]

It sounds like you want !isconcretetype, e.g.

julia> !isconcretetype(IntOrString)
true
6 Likes