code: def split(self, maxSize):
          
          chunks = []
          currentSize = maxSize + 1
          try:
              while True:
                  if currentSize >= maxSize:
                      currentSize = 0
                      chunks.append(type(self)({self.pop()}, name = 'Chunk-{}-of-{}'.format(len(chunks), self.name), quietStart = True))
                  else:
                      chunks[-1].add(self.pop())
                  currentSize += 1
          except KeyError:
              self.clear()
              self.name = 'Emptied-{}'.format(self.name)
          return chunks
docs: Destructively, splits the `Collection` into _maxSize_ size or smaller `Collections`. The source `Collection` will be empty after this operation
  
          # Parameters
  
          _maxSize_ : `int`
  
          > The maximum number of elements in a retuned `Collection`
  
          # Returns
  
          `list [Collection]`
  
          > A list of `Collections` that if all merged (`|` operator) would create the original