The C version defined several related hasher types with preprocessor tricks, but I split them up for the translation to Go. Now I'm recombining them.