functor (H : HASH->
  sig
    type state = H.state
    val int : int -> state -> state
    val bool : bool -> state -> state
    val char : char -> state -> state
    val int32 : int32 -> state -> state
    val int64 : int64 -> state -> state
    val nativeint : nativeint -> state -> state
    val slice : string -> int -> int -> state -> state
    type 'a hash_fun = '-> state -> state
    val string : string hash_fun
    val list : 'a hash_fun -> 'a list hash_fun
    val array : 'a hash_fun -> 'a array hash_fun
    val opt : 'a hash_fun -> 'a option hash_fun
    val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
    val triple :
      'a hash_fun -> 'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
    val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
    val seq : 'a hash_fun -> 'a sequence hash_fun
    val gen : 'a hash_fun -> 'a gen hash_fun
    val klist : 'a hash_fun -> 'a klist hash_fun
  end