code: def unique(seen, *iterables):
      
      _add = seen.add
      # return a generator of the unique items and the set of the seen items
      # the seen set will mutate when the generator is iterated over
      return (i for i in chain(*iterables) if i not in seen and not _add(i))
docs: Get the unique items in iterables while preserving order.  Note that this
      mutates the seen set provided only when the returned generator is used.
  
      Args:
          seen (set): either an empty set, or the set of things already seen
          *iterables: one or more iterable lists to chain together
  
      Returns:
          generator: