As the data might not be stored as `T` anywhere, `fn iter(&self) -> impl Iterator<Item = &T>` is impossible. Probably something like https://github.com/reem/rust-traverse is the way to go.