Actually, this API would still work for a hash function whose state is an integer; if you look at <https://github.com/nbraud/ocaml/commit/a582a73d109d4f060d9898f95a7a50612de1d03f>, I just wrapped the integer representing the state in a struct.

The separation between `hash_t` and `hash_internal` (`hash_t` being a pointer on `hash_internal`) is necessary so as not to expose the definition of `hash_internal` in the header.