HashTable[K; V] = object values*: seq[Node[K, V]] len: int fill: int mask: int
CPLIB_COLLECTIONS_HASHTABLE = 1
proc `[]=`[K, V](self: var HashTable[K, V]; key: K; val: V)
proc `[]`[K, V](self: HashTable[K, V]; key: K): V
proc `[]`[K, V](self: var HashTable[K, V]; key: K): var V
proc clear[K, V](self: var HashTable[K, V])
proc contains[K, V](self: var HashTable[K, V]; key: K): bool
proc del[K, V](self: var HashTable[K, V]; key: K)
proc excl[K, V](self: var HashTable[K, V]; key: K)
proc hash[K, V](self: HashTable[K, V]): Hash
proc hasKey[K, V](self: var HashTable[K, V]; key: K): bool
proc incl[K, V](self: var HashTable[K, V]; val: (K, V))
proc initHashTable[K, V](): HashTable[K, V]
proc initHashTable[K, V](capacity: int): HashTable[K, V]
proc len[K, V](self: HashTable[K, V]): int
iterator keys[K, V](self: HashTable[K, V]): K
iterator pairs[K, V](self: HashTable[K, V]): (K, V)
iterator values[K, V](self: HashTable[K, V]): V