sig
  type funid =
      Funid_unknown
    | Funid_copy
    | Funid_free
    | Funid_asize
    | Funid_minimize
    | Funid_canonicalize
    | Funid_hash
    | Funid_approximate
    | Funid_fprint
    | Funid_fprintdiff
    | Funid_fdump
    | Funid_serialize_raw
    | Funid_deserialize_raw
    | Funid_bottom
    | Funid_top
    | Funid_of_box
    | Funid_dimension
    | Funid_is_bottom
    | Funid_is_top
    | Funid_is_leq
    | Funid_is_eq
    | Funid_is_dimension_unconstrained
    | Funid_sat_interval
    | Funid_sat_lincons
    | Funid_sat_tcons
    | Funid_bound_dimension
    | Funid_bound_linexpr
    | Funid_bound_texpr
    | Funid_to_box
    | Funid_to_lincons_array
    | Funid_to_tcons_array
    | Funid_to_generator_array
    | Funid_meet
    | Funid_meet_array
    | Funid_meet_lincons_array
    | Funid_meet_tcons_array
    | Funid_join
    | Funid_join_array
    | Funid_add_ray_array
    | Funid_assign_linexpr_array
    | Funid_substitute_linexpr_array
    | Funid_assign_texpr_array
    | Funid_substitute_texpr_array
    | Funid_add_dimensions
    | Funid_remove_dimensions
    | Funid_permute_dimensions
    | Funid_forget_array
    | Funid_expand
    | Funid_fold
    | Funid_widening
    | Funid_closure
    | Funid_change_environment
    | Funid_rename_array
  and funopt = {
    algorithm : int;
    timeout : int;
    max_object_size : int;
    flag_exact_wanted : bool;
    flag_best_wanted : bool;
  }
  and exc =
      Exc_none
    | Exc_timeout
    | Exc_out_of_space
    | Exc_overflow
    | Exc_invalid_argument
    | Exc_not_implemented
  and exclog = {
    exn : Apron.Manager.exc;
    funid : Apron.Manager.funid;
    msg : string;
  }
  and 'a t
  external get_library : 'Apron.Manager.t -> string
    = "camlidl_manager_ap_manager_get_library"
  external get_version : 'Apron.Manager.t -> string
    = "camlidl_manager_ap_manager_get_version"
  external funopt_make : unit -> Apron.Manager.funopt
    = "camlidl_manager_ap_funopt_make"
  external get_funopt :
    'Apron.Manager.t -> Apron.Manager.funid -> Apron.Manager.funopt
    = "camlidl_manager_ap_manager_get_funopt"
  external set_funopt :
    'Apron.Manager.t -> Apron.Manager.funid -> Apron.Manager.funopt -> unit
    = "camlidl_manager_ap_manager_set_funopt"
  external get_flag_exact : 'Apron.Manager.t -> bool
    = "camlidl_manager_ap_manager_get_flag_exact"
  external get_flag_best : 'Apron.Manager.t -> bool
    = "camlidl_manager_ap_manager_get_flag_best"
  exception Error of Apron.Manager.exclog
  val string_of_funid : Apron.Manager.funid -> string
  val string_of_exc : Apron.Manager.exc -> string
  val print_funid : Format.formatter -> Apron.Manager.funid -> unit
  val print_funopt : Format.formatter -> Apron.Manager.funopt -> unit
  val print_exc : Format.formatter -> Apron.Manager.exc -> unit
  val print_exclog : Format.formatter -> Apron.Manager.exclog -> unit
  external set_deserialize : 'Apron.Manager.t -> unit
    = "camlidl_manager_ap_manager_set_deserialize"
  external get_deserialize : unit -> 'Apron.Manager.t
    = "camlidl_manager_ap_manager_get_deserialize"
end