let pp_flow fmt nil op pp = function
    | [] -> 
         Format.pp_print_string fmt nil
    | x::xs ->
         Format.fprintf fmt "@[<hov 1>(%a" pp x ;
        List.iter (fun x ->  Format.fprintf fmt "@,%s%a" op pp x) xs ;
         Format.fprintf fmt ")@]"