let pp_block fmt tab op pp ps =
  match ps with
    | [] -> ()
    | p::ps ->
        fprintf fmt "%s %a" tab pp p ;
        List.iter (fun p -> fprintf fmt "@\n%s %a" op pp p) ps