I needed some help in understanding join internals please. I
understood EnumerableJoin and its internals, but not sure as to how
the translation to EnumerableDefaults went through. Specifically, I
did not understand why EnumerableJoin does not have a physical
equivalent that implements EnumerableDefaults#join and why it goes
through to EnumerableDefaults. Is EnumerableDefaults is the physical
conversion operator for all Enumerable* logical operators?