public void Match <TT, TTDiscard>(Action <LeftJoinNode <TT, TTDiscard> > callback) where TT : class { var self = this.CastAs <DiscardRuleNodeSelector <Token <TT, TTDiscard>, TDiscard> >(); if (_node == null) { _left.Match <T, TDiscard>(leftJoin => { _node = leftJoin; }); } _configurator.MatchLeftJoinNode(self._node, callback); }