export async function * dropLastGen<T> (iter: AsyncIterable<T>, num: number): AsyncIterable<T> {
  const buf = Array(num)
  let pos = 0
  let size = 0
  for await (const elem of iter) {