OCamlでFormat.fprintfを使った関数の文字列への変換
以下のようなFormatをつかったデータを出力する関数があります:
type e = Int of int | Add of e * e
let rec pp_e ppf = function
| Int(i) -> Format.fprintf ppf "Int(%d)@?" i
| Add(e1, e2) -> Format.fprintf ppf "Add(%a,%a)@?" pp_e e1 pp_e e2
この関数は以下のようにすると標準出力へ出力出来ます:
let _ = pp_e Format.std_formatter (Add(Int 1, Int 2))
ここで、この関数を利用して以下のような型のeを文字列に変換する関数を作りたいのですが:
let show_e (e:e):string = ...
一般的にFormatを使った関数を使って文字列へ変換する方法を教えてください。