This is not specific to Unitful: Types · The Julia Language
This last point is very important: even though
Float64 <: Realwe DO NOT havePoint{Float64} <: Point{Real}.
!(energies isa Array{ EnergyQuantity, 2})
# but
energies isa Array{<:EnergyQuantity, 2}