src/Pure/library.ML
changeset 1580 e3fd931e6095
parent 1576 af8f43f742a0
child 1592 d89d5ff2397f
--- a/src/Pure/library.ML	Thu Mar 14 16:40:18 1996 +0100
+++ b/src/Pure/library.ML	Fri Mar 15 12:01:19 1996 +0100
@@ -703,14 +703,22 @@
 
 (** input / output **)
 
-fun prs s = output (std_out, s);
+val prs_fn = ref(fn s => output (std_out, s));
+
+fun prs s = !prs_fn s;
 fun writeln s = prs (s ^ "\n");
 
+(*print warning*)
+val warning_fn = ref(fn s => output (std_out, s ^ "\n"));
+fun warning s = !warning_fn ("Warning: " ^ s);
 
 (*print error message and abort to top level*)
+
+val error_fn = ref(fn s => output (std_out, s ^ "\n"));
+
 exception ERROR;
-fun error msg = (writeln msg; raise ERROR);
-fun sys_error msg = (writeln "*** SYSTEM ERROR ***"; error msg);
+fun error msg = (!error_fn msg; raise ERROR);
+fun sys_error msg = (!error_fn "*** SYSTEM ERROR ***"; error msg);
 
 fun assert p msg = if p then () else error msg;
 fun deny p msg = if p then error msg else ();