Add 2 additional functions.
Implement few default hashers.
Fix small typo.
Add assert() calls where needed.
Add documentation.
Keep source code aligned to 80 characters boundary.