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 {
//
}