/**
* Takes a number of elements from the queue between the specified minimum and
* maximum. If there are fewer than the minimum number of elements available,
* retries until at least the minimum number of elements have been collected.
*
* @tsplus static effect/core/stm/TQueue.Aspects takeBetween
* @tsplus pipeable effect/core/stm/TQueue takeBetween
*/
export function takeBetween(min: number, max: number) {
return (self: TQueue): STM> =>
STM.suspend(self.takeRemainder(min, max, Chunk.empty()))
}