diff --git a/src/kernel_services/ast_printing/printer_tag.ml b/src/kernel_services/ast_printing/printer_tag.ml index 023b14d756ba29bfdb59887a107e17a6915b6c1c..83eeb184084837fbf479bdf830bc4af2c8c1025f 100644 --- a/src/kernel_services/ast_printing/printer_tag.ml +++ b/src/kernel_services/ast_printing/printer_tag.ml @@ -521,19 +521,15 @@ struct let unfold = ref (fun (_ : stmt) -> false) - let printer = - let pref : Printer.extensible_printer option ref = ref None in - fun () -> - match !pref with Some pp -> pp | None -> - let pp = Printer.current_printer () in - let module PP = (val pp: Printer.PrinterClass) in - let module TAG = struct - let create = T.create - let unfold s = !unfold s - end in - let module TagPrinterClass = BUILD(TAG)(PP) in - let printer = new TagPrinterClass.printer in - pref := Some printer ; printer + let printer () = + let pp = Printer.current_printer () in + let module PP = (val pp: Printer.PrinterClass) in + let module TAG = struct + let create = T.create + let unfold s = !unfold s + end in + let module TagPrinterClass = BUILD(TAG)(PP) in + new TagPrinterClass.printer let with_unfold_precond unfolder f fmt x = let stack = !unfold in