/// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.LeftJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" />
 /// <remarks>
 /// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.LeftJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" />
 /// <para>This method is called when using query expressions where the sequence expression on the right side is an <see cref="T:VariableIrony.Linq.IInnerEnumerable`1" /> (for example, by calling <see cref="M:VariableIrony.IEnumerableExtensions.AsInner``1(System.Collections.Generic.IEnumerable{``0})" />).</para>
 /// </remarks>
 public static IEnumerable <TResult> Join <TOuter, TInner, TKey, TResult>(this IEnumerable <TOuter> outer, IInnerEnumerable <TInner> inner, Func <TOuter, TKey> outerKeySelector, Func <TInner, TKey> innerKeySelector, Func <TOuter, TInner, TResult> resultSelector, IEqualityComparer <TKey> comparer)
 {
     return(LeftJoin(outer, GetSource(inner), outerKeySelector, innerKeySelector, resultSelector, comparer));
 }
 /// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.Join``4(System.Collections.Generic.IEnumerable{``0},VariableIrony.Linq.IInnerEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" />
 public static IEnumerable <TResult> Join <TOuter, TInner, TKey, TResult>(this IEnumerable <TOuter> outer, IInnerEnumerable <TInner> inner, Func <TOuter, TKey> outerKeySelector, Func <TInner, TKey> innerKeySelector, Func <TOuter, TInner, TResult> resultSelector)
 {
     return(outer.Join(inner, outerKeySelector, innerKeySelector, resultSelector, null));
 }