--- a/src/HOL/SMT/Tools/smtlib_interface.ML Wed Apr 07 20:40:42 2010 +0200
+++ b/src/HOL/SMT/Tools/smtlib_interface.ML Wed Apr 07 20:40:42 2010 +0200
@@ -61,7 +61,7 @@
(* serialization *)
-fun wr s stream = (TextIO.output (stream, s); stream)
+val wr = Buffer.add
fun wr_line f = f #> wr "\n"
fun sep f = wr " " #> f
@@ -118,11 +118,10 @@
| wr_pat (T.SNoPat ts) = wrp "nopat" ts
in par (wr_quant q #> fold wr_var vs #> wre b #> fold wr_pat ps) end)
-fun serialize attributes comments ({typs, funs, preds} : T.sign) ts stream =
- let
- fun wr_decl (n, Ts) = wr_line (sep (par (wr n #> fold wr1 Ts)))
+fun serialize attributes comments ({typs, funs, preds} : T.sign) ts =
+ let fun wr_decl (n, Ts) = wr_line (sep (par (wr n #> fold wr1 Ts)))
in
- stream
+ Buffer.empty
|> wr_line (wr "(benchmark Isabelle")
|> wr_line (wr ":status unknown")
|> fold (wr_line o wr) attributes
@@ -140,7 +139,7 @@
|> wr_line (wr ":formula true")
|> wr_line (wr ")")
|> fold (fn comment => wr_line (wr ("; " ^ comment))) comments
- |> K ()
+ |> Buffer.content
end