import { filterAsync } from '@src/filter-async.js' import { toSetAsync } from '@src/to-set-async.js' import { Awaitable } from 'justypes' export async function* differenceAsync( left: Iterable> | AsyncIterable> , right: Iterable> | AsyncIterable> ): AsyncIterableIterator> { const rightSet = await toSetAsync(right) yield* filterAsync(left, async x => !rightSet.has(x)) }