struct
  
  (** Print something onto stdout, then immediately flush the buffer. This may be slower but allows to print without waiting for automatic flushes, which are very infrequent when more than one process is concurrently writing to the same channel *)

  let print_char c = Pervasives.print_char c; flush stdout
  let print_string s = Pervasives.print_string s; flush stdout
  let print_int i = Pervasives.print_int i; flush stdout
  let print_float f = Pervasives.print_float f; flush stdout
  let print_endline s = Pervasives.print_endline s; flush stdout
  let print_newline () =  Pervasives.print_newline (); flush stdout
end