(* Discard pending NEWLINE character before passing control to CLI or V*)
fun flushnl() = input(std_in,1);

(* Call a semi-standard command line interpreter, Ctrl-Y returns to ML *)
fun cli () = (flushnl(); system "ml:cli");

(* call VECCE editor, then re-execute edited file *)
fun v f = (flushnl(); system("v " ^ f); use [f]);
