export const HashSetSym = Symbol.for("@tsplus/stdlib/collections/HashSet") export type HashSetSym = typeof HashSetSym /** * @tsplus type HashSet */ export interface HashSet extends Collection, Equals { readonly [HashSetSym]: HashSetSym [Symbol.iterator](): Iterator } /** * @tsplus type HashSet.Ops */ export interface HashSetOps { $: HashSetAspects } export const HashSet: HashSetOps = { $: {} } /** * @tsplus type HashSet.Aspects */ export interface HashSetAspects {} /** * @tsplus unify HashSet */ export function unifyHashSet>( self: X ): HashSet<[X] extends [HashSet] ? A : never> { return self } /** * @tsplus static HashSet.Ops isHashSet */ export function isHashSet(u: Iterable): u is HashSet export function isHashSet(u: unknown): u is HashSet export function isHashSet(u: unknown): u is HashSet { return typeof u === "object" && u != null && HashSetSym in u }