module type S =sig
..end
include Printer_api.S_pp
class extensible_printer :unit ->
Printer_api.extensible_printer_type
module type PrinterClass =sig
..end
module type PrinterExtension =functor (
X
:
PrinterClass
) ->
PrinterClass
val update_printer : (module Printer_api.S.PrinterExtension) -> unit
X
in the functor Printer_api.S.PrinterExtension
is the current
pretty-printer, which you should inherit from.
This is how this function should be used:
module PrinterClassDeferred (X: Printer.PrinterClass) = struct
class printer : Printer.extensible_printer = object(self)
inherit X.printer as super
(* Override the standard methods *)
end
end
let () = Printer.update_printer
(module PrinterClassDeferred: Printer.PrinterExtension)
val current_printer : unit -> (module Printer_api.S.PrinterClass)
Printer_api.S.update_printer
.val set_printer : (module Printer_api.S.PrinterClass) -> unit
Printer_api.S.current_printer
. This can be useful to cancel a
modification performed through Printer_api.S.update_printer
.