this is a fine solution for now, but alternatively, we could imagine a `FunctionMatrix[R,C,V](fn: (R,C) => V)` and a Literal scalar is just: `FuctionMatrix[Unit, Unit, V]({ (_, _) => v })`

This might be a good TODO, don't do it in this pull req. We can do products (Hadamard and standard) with a FunctionMatrix I think, but due to sparsity, I don't think we can do Sum.