`fn elements<'a>(&'a self) -> iter::FlatMap<'a, K, vec::Items<'a, K>, uint, Take<Repeat<uint>>>` perhaps?

if you remove the `collect` rustc should give you the type it would return.