let option pp fmt = function | None -> fprintf fmt ":none" | Some(x) -> (match !flag with | Sexpr -> sexpr1 pp fmt (":some", x) | _ -> fprintf fmt ":some("; pp fmt x; fprintf fmt ")")