public IBetaNode <T, T> BuildJoinNode <T>(BuilderContext context)
            where T : class
        {
            using (_logger.BeginScope($"{nameof(BuildJoinNode)}<{typeof(T).Name}>"))
            {
                var betaSource  = (context.BetaSource ?? new DummyNode <T>()) as ITupleSource <T>;
                var alphaSource = context.AlphaSource as IFactSource <T>;

                _logger.LogDebug($"Creating join node: {typeof(T).Name}");

                var node = new JoinNode <T, T>(betaSource, alphaSource, new BetaCondition <T, T>((x, y) => true));

                context.BetaSource = node.MemoryNode;

                context.ClearAlphaSource();

                return(node);
            }
        }