+(* Allow only safe functions from Printf. *)
+module Printf : sig
+ val printf : ('a, out_channel, unit) format -> 'a
+ val sprintf : ('a, unit, string) format -> 'a
+end = struct include Printf end
+
+(* Allow only safe functions from Scanf. *)
+module Scanf : sig
+ module Scanning : sig
+ type scanbuf;;
+ val stdib : scanbuf;;
+ val from_string : string -> scanbuf;;
+ val from_function : (unit -> char) -> scanbuf;;
+ val end_of_input : scanbuf -> bool;;
+ val beginning_of_input : scanbuf -> bool;;
+ val name_of_input : scanbuf -> string;;
+ end;;
+ exception Scan_failure of string;;
+ type ('a, 'b, 'c, 'd) scanner =
+ ('a, Scanning.scanbuf, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c;;
+ val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner;;
+ val sscanf : string -> ('a, 'b, 'c, 'd) scanner;;
+ val scanf : ('a, 'b, 'c, 'd) scanner;;
+ val kscanf :
+ Scanning.scanbuf -> (Scanning.scanbuf -> exn -> 'd) ->
+ ('a, 'b, 'c, 'd) scanner;;
+ val bscanf_format :
+ Scanning.scanbuf -> ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
+ (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g;;
+ val sscanf_format :
+ string -> ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
+ (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g;;
+ val format_from_string :
+ string ->
+ ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6;;
+end = struct include Scanf end
+