Interface
export interface SetStorage<V extends SerializableKey> extends Iterable<V> {
readonly [Symbol.iterator]: () => IterableIterator<V>;
readonly forEach: (callback: (value: V) => void) => void;
readonly has: (value: V) => boolean;
readonly delete: (value: V) => boolean;
readonly add: (value: V) => SetStorage<V>;
readonly at: V extends [SK, SK]
? SKSetAtTwo<V>
: V extends [SK, SK, SK]
? SKSetAtThree<V>
: V extends [SK, SK, SK, SK]
? SKSetAtFour<V>
: never;
readonly [OpaqueTagSymbol0]: unique symbol;
}