import { concreteImmutableQueue, ImmutableQueueInternal } from "@tsplus/stdlib/collections/ImmutableQueue/_internal/ImmutableQueueInternal" /** * @tsplus getter ImmutableQueue dequeue */ export function dequeue( self: ImmutableQueue ): Maybe, ImmutableQueue]> { concreteImmutableQueue(self) const size = self.backingList.length if (size === 0) { return Maybe.none } return Maybe.some( [ self.backingList.unsafeHead!, size === 1 ? new ImmutableQueueInternal(List.nil()) : new ImmutableQueueInternal(self.backingList.unsafeTail!) ] ) }