let infix pp1 op pp2 fmt (a,b) =
  Format.fprintf fmt ""
  pp1 fmt a; 
  Format.fprintf fmt " %s " op; 
  pp2 fmt b;
  Format.fprintf fmt ""