Hi all, I'm curious about the asymmetry between printf and scanf. I like the modularity I can get by user defined printers, i.e. module Foo = struct type t = int let print ppf = fprintf "%d" end printf "My %a" Foo.print some_foo But how do I get the same abstraction with scanf? let id a = a module Foo = struct type t = int let read buf = bscanf "%d" id end (*Seemed natural*) let some_foo = bscanf "My %a" Foo.read id Thanks, /Sasha