code: def PrependUnique(self, delete_existing=0, **kw):
          
          kw = copy_non_reserved_keywords(kw)
          for key, val in kw.items():
              if SCons.Util.is_List(val):
                  val = _delete_duplicates(val, not delete_existing)
              if key not in self._dict or self._dict[key] in ('', None):
                  self._dict[key] = val
              elif SCons.Util.is_Dict(self._dict[key]) and \
                   SCons.Util.is_Dict(val):
                  self._dict[key].update(val)
              elif SCons.Util.is_List(val):
                  dk = self._dict[key]
                  if not SCons.Util.is_List(dk):
                      dk = [dk]
                  if delete_existing:
                      dk = [x for x in dk if x not in val]
                  else:
                      val = [x for x in val if x not in dk]
                  self._dict[key] = val + dk
              else:
                  dk = self._dict[key]
                  if SCons.Util.is_List(dk):
                      # By elimination, val is not a list.  Since dk is a
                      # list, wrap val in a list first.
                      if delete_existing:
                          dk = [x for x in dk if x not in val]
                          self._dict[key] = [val] + dk
                      else:
                          if not val in dk:
                              self._dict[key] = [val] + dk
                  else:
                      if delete_existing:
                          dk = [x for x in dk if x not in val]
                      self._dict[key] = val + dk
          self.scanner_map_delete(kw)
docs: Prepend values to existing construction variables
          in an Environment, if they're not already there.
          If delete_existing is 1, removes existing values first, so
          values move to front.