let rec print_list printer sep ppf = function [] -> () | hd :: [] -> printer ppf hd | hd :: tl -> fprintf ppf "%a%s@ %a" printer hd sep (print_list printer sep) tl