code: def update(self, value, tys=None, override=True):
          
          if isinstance(value, WeldObject):
              self.context.update(value.context)
          else:
              # Ensure that the same inputs always have same names
              value_str = str(value)
              if value_str in WeldObject._registry:
                  name = WeldObject._registry[value_str]
              else:
                  name = WeldObject.generate_input_name(value_str)
              self.context[name] = value
              if tys is not None and not override:
                  self.argtypes[name] = tys
              return name
docs: Update this context. if value is another context,
          the names from that context are added into this one.
          Otherwise, a new name is assigned and returned.
  
          TODO tys for inputs.