code: def copy(self, parent=None):
          
          new = Structure(None, parent=parent)
          new.key = self.key
          new.type_ = self.type_
          new.val_guaranteed = self.val_guaranteed
          new.key_guaranteed = self.key_guaranteed
          for child in self.children:
              new.children.append(child.copy(new))
          return new
docs: Copies an existing structure and all of it's children