let option pp fmt = function
  | None -> 
      Format.fprintf fmt "None"
  | Some(x) -> 
      Format.fprintf fmt "Some(";
      pp fmt x;
      Format.fprintf fmt ")"