How to silence the output produced by other tools?
Jasmin Blanchette wrote: When writing Nitpick, I found the need to silence 
the other tools upon  which Nitpick relies, because their output interfered 
in bad ways with  Nitpick's own output. So I used code like the following:
(* (string -> unit) ref -> ('a -> 'b) -> 'a -> 'b *)
fun silence_one out_fn f x =
let
  val old_out_fn = !out_fn
  val _ = out_fn := K ()
  val y = f x
  val _ = out_fn := old_out_fn
in y end
(* ('a -> 'b) -> 'a -> 'b *)
fun silence f =
   fold silence_one
      [Output.writeln_fn, Output.priority_fn, Output.tracing_fn,
       Output.warning_fn, Output.error_fn, Output.debug_fn,  
       Output.prompt_fn, Output.status_fn] f
    
Last modified: Thu May 21 21:43:15 CEST 2009
[Validate this page.]