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