public static IQuery <T> Distinct <T>(this IQuery <T> query, IEqualityComparer <T> comparer) => query.LiftEnumerable(xs => xs.Distinct(comparer.ContraMap <T, QueryResultItem <T> > (x => x.Value)));