structure Util :> UTIL = struct fun printInt n = Web.print (if n < 0 then "-" ^ Int.toString (~n) else Int.toString n) fun printReal n = Web.print (if n < 0.0 then "-" ^ Real.fmt (StringCvt.FIX (SOME 2)) (~n) else Real.fmt (StringCvt.FIX (SOME 2)) n) fun id x = x fun makeSet f items = case items of [] => "()" | [usr] => "(" ^ f usr ^ ")" | usr::rest => foldl (fn (usr, s) => s ^ ", " ^ f usr) ("(" ^ f usr) rest ^ ")" fun neg (r : real) = ~r end