sig
  type internal
  type loose
  type strict
  type equalities
  type 'a t
  external manager_alloc_loose : unit -> Polka.loose Polka.t Apron.Manager.t
    = "camlidl_polka_pk_manager_alloc_loose"
  external manager_alloc_strict :
    unit -> Polka.strict Polka.t Apron.Manager.t
    = "camlidl_polka_pk_manager_alloc_strict"
  external manager_alloc_equalities :
    unit -> Polka.equalities Polka.t Apron.Manager.t
    = "camlidl_polka_pk_manager_alloc_equalities"
  external manager_get_internal :
    'Polka.t Apron.Manager.t -> Polka.internal
    = "camlidl_polka_manager_get_internal"
  external set_max_coeff_size : Polka.internal -> int -> unit
    = "camlidl_polka_pk_set_max_coeff_size"
  external set_approximate_max_coeff_size : Polka.internal -> int -> unit
    = "camlidl_polka_pk_set_approximate_max_coeff_size"
  external get_max_coeff_size : Polka.internal -> int
    = "camlidl_polka_pk_get_max_coeff_size"
  external get_approximate_max_coeff_size : Polka.internal -> int
    = "camlidl_polka_pk_get_approximate_max_coeff_size"
  val manager_is_polka : 'Apron.Manager.t -> bool
  val manager_is_polka_loose : 'Apron.Manager.t -> bool
  val manager_is_polka_strict : 'Apron.Manager.t -> bool
  val manager_is_polka_equalities : 'Apron.Manager.t -> bool
  val manager_of_polka : 'Polka.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_polka_loose :
    Polka.loose Polka.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_polka_strict :
    Polka.strict Polka.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_polka_equalities :
    Polka.equalities Polka.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_to_polka : 'Apron.Manager.t -> 'Polka.t Apron.Manager.t
  val manager_to_polka_loose :
    'Apron.Manager.t -> Polka.loose Polka.t Apron.Manager.t
  val manager_to_polka_strict :
    'Apron.Manager.t -> Polka.strict Polka.t Apron.Manager.t
  val manager_to_polka_equalities :
    'Apron.Manager.t -> Polka.equalities Polka.t Apron.Manager.t
  module Abstract0 :
    sig
      val is_polka : 'Apron.Abstract0.t -> bool
      val is_polka_loose : 'Apron.Abstract0.t -> bool
      val is_polka_strict : 'Apron.Abstract0.t -> bool
      val is_polka_equalities : 'Apron.Abstract0.t -> bool
      val of_polka : 'Polka.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_polka_loose :
        Polka.loose Polka.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_polka_strict :
        Polka.strict Polka.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_polka_equalities :
        Polka.equalities Polka.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val to_polka : 'Apron.Abstract0.t -> 'Polka.t Apron.Abstract0.t
      val to_polka_loose :
        'Apron.Abstract0.t -> Polka.loose Polka.t Apron.Abstract0.t
      val to_polka_strict :
        'Apron.Abstract0.t -> Polka.strict Polka.t Apron.Abstract0.t
      val to_polka_equalities :
        'Apron.Abstract0.t -> Polka.equalities Polka.t Apron.Abstract0.t
    end
  module Abstract1 :
    sig
      val is_polka : 'Apron.Abstract1.t -> bool
      val is_polka_loose : 'Apron.Abstract1.t -> bool
      val is_polka_strict : 'Apron.Abstract1.t -> bool
      val is_polka_equalities : 'Apron.Abstract1.t -> bool
      val of_polka : 'Polka.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_polka_loose :
        Polka.loose Polka.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_polka_strict :
        Polka.strict Polka.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_polka_equalities :
        Polka.equalities Polka.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val to_polka : 'Apron.Abstract1.t -> 'Polka.t Apron.Abstract1.t
      val to_polka_loose :
        'Apron.Abstract1.t -> Polka.loose Polka.t Apron.Abstract1.t
      val to_polka_strict :
        'Apron.Abstract1.t -> Polka.strict Polka.t Apron.Abstract1.t
      val to_polka_equalities :
        'Apron.Abstract1.t -> Polka.equalities Polka.t Apron.Abstract1.t
    end
end