use dictionary and _hash_func to implement set
spec: fix spec to use hash func
doc: hashfunc