`sig
type ('a, 'b) directive = ((unit BatInnerIO.output -> unit) -> 'b) -> 'a
val literal : string -> ('a, 'a) BatPrint.directive
type pattern = string
val format :
unit BatInnerIO.output ->
BatPrint.pattern -> (unit BatInnerIO.output -> unit) array -> unit
type ('a, 'b) format = {
pattern : BatPrint.pattern;
printer : BatPrint.pattern -> ('a, 'b) BatPrint.directive;
}
val printf : ('a, unit) BatPrint.format -> 'a
val eprintf : ('a, unit) BatPrint.format -> 'a
val sprintf : ('a, string) BatPrint.format -> 'a
val fprintf : 'a BatInnerIO.output -> ('b, unit) BatPrint.format -> 'b
val ifprintf : 'a -> ('b, unit) BatPrint.format -> 'b
val bprintf : Buffer.t -> ('a, unit) BatPrint.format -> 'a
val kfprintf :
('a BatInnerIO.output -> 'b) ->
'a BatInnerIO.output -> ('c, 'b) BatPrint.format -> 'c
val rprintf : ('a, BatRope.t) BatPrint.format -> 'a
val krprintf : (BatRope.t -> 'a) -> ('b, 'a) BatPrint.format -> 'b
val ksprintf : (string -> 'a) -> ('b, 'a) BatPrint.format -> 'b
val kbprintf :
(Buffer.t -> 'a) -> Buffer.t -> ('b, 'a) BatPrint.format -> 'b
end`