# isleaftype

isleaftype(T)

Determine whether `T` is a concrete type that can have instances, meaning its only subtypes are itself and `None` (but `T` itself is not `None`).

## Examples

``````# Check if a type is a concrete leaf type
julia> isleaftype(Int)
true

julia> isleaftype(Array{Float64, 2})
true

julia> isleaftype(Any)
false

julia> isleaftype(Union{Int, String})
false

julia> isleaftype(Nothing)
false``````

In the above examples:

• `Int` is a concrete leaf type because it does not have any subtypes other than itself.
• `Array{Float64, 2}` is also a concrete leaf type because it only has itself as a subtype.
• `Any` is not a concrete leaf type because it has multiple subtypes.
• `Union{Int, String}` is not a concrete leaf type because it has subtypes other than itself.
• `Nothing` is not a concrete leaf type because it is a singleton type and not a concrete type that can have instances.

The `isleaftype` function is useful for checking if a type is a concrete leaf type, meaning it can have instances and does not have any subtypes other than itself and `None`.