docs: def union(self, enumerable, key=lambda x: x):
          """
          Returns enumerable that is a union of elements between self and given
          enumerable
          :param enumerable: enumerable to union self to
          :param key: key selector used to determine uniqueness
          :return: new Enumerable object
          """
          if not isinstance(enumerable, Enumerable):
              raise TypeError(
                  u"enumerable parameter must be an instance of Enumerable")
          return self.concat(enumerable).distinct(key)