import { _A, ImmutableQueueSym } from "@tsplus/stdlib/collections/ImmutableQueue/definition" export class ImmutableQueueInternal implements ImmutableQueue { readonly [ImmutableQueueSym]: ImmutableQueueSym = ImmutableQueueSym readonly [_A]!: () => A constructor(readonly backingList: List) {} [Hash.sym](): number { return this.backingList[Hash.sym]() } [Equals.sym](u: unknown): boolean { return u instanceof ImmutableQueueInternal && Equals.equals(this.backingList, u.backingList) } [Symbol.iterator](): Iterator { return this.backingList[Symbol.iterator]() } } /** * @tsplus macro remove */ export function concreteImmutableQueue( _: ImmutableQueue ): asserts _ is ImmutableQueueInternal { // }