It can fail very easily. An array's default `equals()` implementation will compare object references and not contents. Each of the parameters going into `keyEq.equals()` are different instances but with same contents. `AnyEquivalence.equals()` will fail that cos it relies on `Object.equals()` implementation, but a Equivalence instance that compares arrays based on their contents would pass.