Recursively add a new value and its children to me, and assign a
        variable to it.

        Args:
            k (str): The name of the variable to assign.
            val (LispVal): The value to be added and assigned.

        Returns:
            LispVal: The added value.

def add_rec_new(self, k, val):
        """Recursively add a new value and its children to me, and assign a
        variable to it.

        Args:
            k (str): The name of the variable to assign.
            val (LispVal): The value to be added and assigned.

        Returns:
            LispVal: The added value.
        """
        self.rec_new(val)
        self[k] = val
        return val