fn write_delimited<T, TS, F>(
    f: &mut Formatter<'_>,
    delimiter: &str,
    things: TS,
    write: F
) -> Resultwhere
    TS: IntoIterator<Item = T>,
    F: Fn(&mut Formatter<'_>, T) -> Result,