def traverse(self, traverser, **kwargs):
        """
        Implementation of mandatory interface for traversing the whole rule tree.
        This method will call the implementation of :py:func:`pynspect.rules.RuleTreeTraverser.function`
        method with reference to ``self`` instance as first argument and with the
        result of traversing left subtree as second argument. The optional ``kwargs``
        are passed down to traverser callback as additional arguments and can be
        used to provide additional data or context.

        :param pynspect.rules.RuleTreeTraverser traverser: Traverser object providing appropriate interface.
        :param dict kwargs: Additional optional keyword arguments to be passed down to traverser callback.
        """
        atr = []
        for arg in self.args:
            atr.append(arg.traverse(traverser, **kwargs))
        return traverser.function(self, atr, **kwargs)
Implementation of mandatory interface for traversing the whole rule tree.
        This method will call the implementation of :py:func:`pynspect.rules.RuleTreeTraverser.function`
        method with reference to ``self`` instance as first argument and with the
        result of traversing left subtree as second argument. The optional ``kwargs``
        are passed down to traverser callback as additional arguments and can be
        used to provide additional data or context.

        :param pynspect.rules.RuleTreeTraverser traverser: Traverser object providing appropriate interface.
        :param dict kwargs: Additional optional keyword arguments to be passed down to traverser callback.