Common.Printingmodule type ColorType = sig ... endmodule type FormatType = sig ... endmodule NoFormat : FormatTypemodule ASNIFormat : FormatTypemodule type ColoredString = sig ... endmodule ASNIString (Color : ColorType) (Format : FormatType) : ColoredStringmodule NoColoredString : ColoredStringmodule type Printer = sig ... endmodule MakePrinter (C : ColorType) (F : FormatType) : Printermodule type Logger = sig ... endmodule MakeLogger (Color : ColorType) (Format : FormatType) : Loggermodule CPrinter : sig ... endmodule Printer : sig ... endmodule CString : sig ... endmodule Logger : sig ... end