let map pp1 pp2 fmt ml = match !flag with | Sexpr -> sexpr (assign pp1 pp2) fmt (":map", ml) | _ -> list ("[", "; ", "]") (assign pp1 pp2) fmt ml