hash_t now properly templated