docs: def dict_update_union(d1, d2):
      """
      update a set-valued dictionary
      when key exists, union sets
      """
      for k in d2:
          if k in d1:
              d1[k].update(d2[k])
          else:
              d1[k] = d2[k]