Basically what we did for Mezzo. All printers are intended to work with Buffer.t and %a; then, define a bunch of variants of fprintf, iprintf, kprintf, sprintf, eprintf that work with Buffer.t https://github.com/protz/mezzo/blob/master/lib/MzString.ml On 7/8/16 3:53 AM, Gabriel Scherer wrote: > For non-formatted printing, I find that bprintf (using Buffer.t) is > the more composable primitive. > > On Fri, Jul 8, 2016 at 4:16 AM, Rodolphe Lepigre > > wrote: > > Thanks for your answer! > > > I don't think this is possible with Printf. But if you can > switch to Format > > you can use Format.asprintf instead. > > Yes, I know it is possible to use Format. This is actually what I > am doing > currently! However, I am not using any of the formating features, > so I'd > like to switch to Printf to avoid going from channels to > formatters all the > time... > > >> Dear list, > >> > >> If I define two values > >> > >> val p : type out_channel -> blop -> unit > >> val e : blop > >> > >> then I can do something like > >> > >> Printf.printf "%a" p e > >> > >> but I can't find a way to do something like > >> > >> Printf.sprintf "%a" p e > >> > >> which is not well-typed. Is there any trick that I can use to avoid > >> changing the type of [p] to [blop -> string]? > >> > >> Cheers, > >> > >> Rodolphe > > Cheers, > > Rodolphe > -- > Rodolphe Lepigre > LAMA, Université Savoie Mont Blanc, FRANCE > http://lama.univ-smb.fr/~lepigre/ > > On 08/07/2016 10:08, Nicolas Ojeda Bar wrote: > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > >