public <TKey, TResult> Queryable<TResult> groupByK(
     FunctionExpression<Function1<T, TKey>> keySelector,
     FunctionExpression<Function2<TKey, Enumerable<T>, TResult>> elementSelector,
     EqualityComparer<TKey> comparer) {
   return factory.groupByK(getThis(), keySelector, elementSelector, comparer);
 }
 public <TKey, TResult> Queryable<Grouping<TKey, TResult>> groupByK(
     FunctionExpression<Function1<T, TKey>> keySelector,
     FunctionExpression<Function2<TKey, Enumerable<T>, TResult>> elementSelector) {
   return factory.groupByK(getThis(), keySelector, elementSelector);
 }