Module Genprintval

module type OBJ = sig ... end
module type EVALPATH = sig ... end
type ('a, 'b) gen_printer =
| Zero of 'b
| Succ of 'a -> ('a'b) gen_printer
module type S = sig ... end
module Make (O : OBJ) (_ : EVALPATH with type valu = O.t) : S with type t = O.t