export function* split(iterable: Iterable, separator: T): IterableIterator { let buffer: T[] = [] for (const element of iterable) { if (element === separator) { yield buffer buffer = [] } else { buffer.push(element) } } yield buffer }