let pp_print_option_with_sep ~f ~sep ppf = 
  function
      None -> ()
    | Some e -> 
        (f ppf e : unit);
        sep ppf