code: def rec_new(self, val):
          
          if val not in self.things:
              for child in val.children():
                  self.rec_new(child)
              self.new(val)
          return val
docs: Recursively add a new value and its children to me.
  
          Args:
              val (LispVal): The value to be added.
  
          Returns:
              LispVal: The added value.