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 ")@?"