type t = A | B val print_t : Format.formatter -> t -> unit = type u = C of t - : t = ~B - : u = C ~B type old = OA | OB val print_old : old -> unit = - : old list = [Old(A); Old(B)] - : old list = [OA; OB] type ('a, 'b) v = D of 'a * 'b type 'a printer = Format.formatter -> 'a -> unit val print_generic : 'a printer -> 'b printer -> ('a, 'b) v printer = - : (int, t) v list = [D<0, ~A>; D<42, ~B>] Unbound value name_that_does_not_exist. List.map has the wrong type for a printing function. Unbound value name_that_does_not_exist. List.map has the wrong type for a printing function. val non_installed_printer : 'a -> unit -> unit = The printer named non_installed_printer is not installed.