pub fn write_matrix_market_to_bufwrite<'a, N, I, M, W>(
    writer: &mut W,
    mat: M
) -> Result<(), Error>where
    I: 'a + SpIndex + Display,
    N: 'a + PrimitiveKind + MatrixMarketDisplay,
    for<'n> Displayable<&'n N>: Display,
    M: IntoIterator<Item = (&'a N, (I, I))> + SparseMat,
    W: Write + ?Sized,