import {
concreteImmutableQueue,
ImmutableQueueInternal
} from "@tsplus/stdlib/collections/ImmutableQueue/_internal/ImmutableQueueInternal"
/**
* @tsplus static ImmutableQueue.Aspects filter
* @tsplus pipeable ImmutableQueue filter
*/
export function filter(
f: Refinement
): (self: ImmutableQueue) => ImmutableQueue
export function filter(f: Predicate): (self: ImmutableQueue) => ImmutableQueue
export function filter(f: Predicate) {
return (self: ImmutableQueue): ImmutableQueue => {
concreteImmutableQueue(self)
return new ImmutableQueueInternal(self.backingList.filter(f))
}
}