In the following struct for example
struct DeviceSparseMatrixCSR{
Tv,
Ti<:Integer,
RowPtrT<:AbstractVector,
ColValT<:AbstractVector,
NzValT<:AbstractVector,
} <: AbstractDeviceSparseMatrix{Tv,Ti}
is there a reason not to have
RowPtrT<:AbstractVector{Ti}
ColValT<:AbstractVector{Ti}
NzValT<:AbstractVector{Tv}