A call to ppstring ppf x will call the pretty-printing function
ppf on value x, with the pretty-printing output stored in the
string that is eventually returned to the user. The linewidth used for
determining when to wrap with newline characters is given by the
reference Globals.linewidth (typically 72).
FAILURE
Fails if the pretty-printing function fails on the particular input
value.
EXAMPLE
> ppstring (fn pps => fn () => PP.add_string pps "hello") ()
val it = "hello": string