pub fn equal<A, T, F>(key: F) -> EqualJoiner<F, F, T>where T: PartialEq, F: Fn(&A) -> T + Clone + Send + Sync,