let constant fmt = function
  | ConstInt n -> 
     let k = int_of_string n in 
     if k < 0 then pp_print_string fmt ("( "^n^" )"
     else pp_print_string fmt n 
  | ConstBool b -> pp_print_string fmt (if b then "true" else "false")
  | ConstUnit -> pp_print_string fmt "void"
  | ConstFloat f -> pp_print_string fmt f