pub fn keep_where<A: Clone, B: Copy + PartialEq>( items: &[A], read: fn(&A) -> B, wanted: B, ) -> Vec<A>