functor   (P : sig class printer : unit -> Printer_api.extensible_printer_type end) ->   Printer_api.S