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