static Conveyor<From<I>, I> filter<I>(bool f(I i)) => consume<I, I>((i) => f(i) ? produce(i) : halt()).repeatUntilExhausted();