O . o by chance were they all bought at once ? did they forget the rule when buying in bulk for use , always request they be from different batches . this rule is to prevent exactly this scenario . <| sep |> More vectors , or other information about the matrix . For an mxn matrix , knowing where it sends n independent vectors is enough . Then you can write the vectors as columns of matrices B and C , with XBC , and B is invertible since its columns are independent , so XCB 1 . <| sep |> I wonder if dealing with the exceptions that fall out of a coeffect based type system would end up being a bunch of if statements again , or if those exceptions would live in a framework or language level and drive program behavior . Also I wonder what a coeffect language solution to asynchronous code would look like ? I suppose some languages already have some of the answers already for what adding async to the type system would be like . Very interesting !