以下のような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を使った関数を使って文字列へ変換する方法を教えてください。