add upper-triangular? and lower-triangular? protcols
PMatrixTypes protocol