<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def chunk(self, maxSize):
 """Splits the `Collection` into _maxSize_ size or smaller `Collections` # 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 """

        chunks = []
        currentSize = maxSize + 1
        for i in self:
            if currentSize >= maxSize:
                currentSize = 0
                chunks.append(type(self)({i}, name = 'Chunk-{}-of-{}'.format(len(chunks), self.name), quietStart = True))
            else:
                chunks[-1].add(i)
            currentSize += 1
        return chunks