by<A, B> static method
Convert an implicit Eq<B>
to an Eq<A>
using the given function f
.
/// Convert an `Eq` on `int` to an `Eq` to check `String` length
final instance = Eq.instance<int>((a1, a2) => a1 == a2);
final by = Eq.by<String, int>((a) => a.length, instance);
expect(by.eqv('abc', 'abc'), true); // Same length
expect(by.eqv('abc', 'ab'), false); // Different length
Implementation
static Eq<A> by<A, B>(B Function(A a) f, Eq<B> eq) =>
_Eq((x, y) => eq.eqv(f(x), f(y)));