<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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