Recursively add a new value and its children to me.

        Args:
            val (LispVal): The value to be added.

        Returns:
            LispVal: The added value.

def rec_new(self, val):
        """Recursively add a new value and its children to me.

        Args:
            val (LispVal): The value to be added.

        Returns:
            LispVal: The added value.
        """
        if val not in self.things:
            for child in val.children():
                self.rec_new(child)
            self.new(val)
        return val