can we refine this type: `List[Either[Product[R, C, V], MatrixLiteral[R, C, V]]]`

Is that right?  If that is not the case, then later down below, it is hard to see that we have really optimized everything.