Type for square matrix

I am wondering if it would make sense to have an abstract type for <: AbstractMatrix types which are by construction square, eg

abstract type SquareMatrix{T} <: AbstractMatrix{T} end

Subtypes would be Diagonal, various *Triangular, Symmetric and Hermitian, etc.

Not being a subtype would of course not imply that something is not square, just that it cannot be determined from the type alone.

(opening discussion before making an issue)

Possibly. Which methods would use this type?