let pair pp1 pp2 fmt (a, b) = match !flag with | Sexpr -> sexpr2 pp1 pp2 fmt (":pair", a, b) | _ -> fprintf fmt "("; pp1 fmt a; string fmt ","; pp2 fmt b; fprintf fmt ")@?"