diff -r 24bf0e403526 -r 5203eb387a0c src/Pure/Tools/codegen_serializer.ML --- a/src/Pure/Tools/codegen_serializer.ML Thu Jan 25 09:32:51 2007 +0100 +++ b/src/Pure/Tools/codegen_serializer.ML Thu Jan 25 09:32:56 2007 +0100 @@ -621,7 +621,11 @@ val (ps, vars') = fold_map pr binds vars; in brackets (str "fun" :: ps @ str "->" @@ pr_term vars' NOBR t') end | pr_term vars fxy (INum n) = - brackets [str "Big_int.big_int_of_int", (str o IntInf.toString) n] + if n > 0 then + brackify fxy [str "Big_int.big_int_of_int", (str o IntInf.toString) n] + else + brackify fxy [str "Big_int.big_int_of_int", + (str o enclose "(" ")" o prefix "-" o IntInf.toString o op ~) n] | pr_term vars _ (IChar c) = (str o enclose "'" "'") (let val i = ord c