let infix pp1 op pp2 fmt (a, b) =
match !flag with
| Sexpr -> sexpr2 pp1 pp2 fmt (op, a, b)
| Prefix -> fprintf fmt "%s" op; pair pp1 pp2 fmt (a, b)
| Mixfix -> fprintf fmt ""; pp1 fmt a; fprintf fmt " %s " op; pp2 fmt b; fprintf fmt ""