```js /** * @type {(read: (size: number) => Promise<UInt8Array>) => * (size: number) => * () => Promise<UInt8Array> * } */ const reader = read => size => { let next = read(size) return async () => { let current = next next = current.then(() => read(size)) return current } } ```