(predicate: Predicate<In>)
| 1714 | const out = Arr.empty<Out>() |
| 1715 | let leftover: Arr.NonEmptyReadonlyArray<In> | undefined = undefined |
| 1716 | return upstream.pipe( |
| 1717 | Effect.flatMap((arr) => { |
| 1718 | let i = 0 |
| 1719 | return Effect.whileLoop({ |
| 1720 | while: () => i < arr.length, |
| 1721 | body: constant(Effect.flatMap(Effect.suspend(() => filter(arr[i++])), (result) => { |
| 1722 | if (Result.isFailure(result)) { |
| 1723 | if (i < arr.length) { |
| 1724 | leftover = arr.slice(i) as any |
| 1725 | } |
| 1726 | return Cause.done() |
| 1727 | } |