let output preludes ~file p =
  Wp_parameters.result "exporting why file in %s@." file;
  let c = open_out file in
  let rec add_preludes preludes = match preludes with
    | f::tl ->
        Wp_parameters.result "\t with prelude %s@." f;
        let cin = open_in f in
        begin 
          try while true do output_char c (input_char cin) done
          with End_of_file -> close_in cin
        end;
        add_preludes tl
    | [] -> ()
  in
    add_preludes preludes;
  let fmt = formatter_of_out_channel c in
  fprintf fmt "@[%a@]@." (print_list newline decl) p;
  close_out c