pub trait Readable { type Output; // Required method fn read<R: BufRead, S: Source<R>>(source: &mut S) -> Self::Output; }