pub trait Index<Idx> { type Output: ?Sized; // Required method fn at(&self, index: Idx) -> Self::Output; }