sig
  type loose
  type strict
  type 'a t
  external manager_alloc_loose :
    unit -> Pplite.loose Pplite.t Apron.Manager.t
    = "camlidl_pplite_ap_pplite_manager_alloc_loose"
  external manager_alloc_strict :
    unit -> Pplite.strict Pplite.t Apron.Manager.t
    = "camlidl_pplite_ap_pplite_manager_alloc_strict"
  external manager_set_kind : 'Pplite.t Apron.Manager.t -> string -> unit
    = "camlidl_pplite_ap_pplite_manager_set_kind"
  external manager_get_kind : 'Pplite.t Apron.Manager.t -> string
    = "camlidl_pplite_ap_pplite_manager_get_kind"
  external manager_set_widen_spec :
    'Pplite.t Apron.Manager.t -> string -> unit
    = "camlidl_pplite_ap_pplite_manager_set_widen_spec"
  external manager_get_widen_spec : 'Pplite.t Apron.Manager.t -> string
    = "camlidl_pplite_ap_pplite_manager_get_widen_spec"
  external abstract0_split :
    'Pplite.t Apron.Manager.t ->
    'Pplite.t Apron.Abstract0.t ->
    Apron.Lincons0.t -> bool -> bool -> 'Pplite.t Apron.Abstract0.t
    = "camlidl_pplite_ap_pplite_abstract0_split"
  external abstract0_is_disjunctive :
    'Pplite.t Apron.Manager.t -> 'Pplite.t Apron.Abstract0.t -> bool
    = "camlidl_pplite_ap_pplite_abstract0_is_disjunctive"
  external abstract0_num_disjuncts :
    'Pplite.t Apron.Manager.t -> 'Pplite.t Apron.Abstract0.t -> int
    = "camlidl_pplite_ap_pplite_abstract0_num_disjuncts"
  external abstract0_disj_to_lincons_array :
    'Pplite.t Apron.Manager.t ->
    'Pplite.t Apron.Abstract0.t -> int -> Apron.Lincons0.t array
    = "camlidl_pplite_ap_pplite_abstract0_disj_to_lincons_array"
  external abstract0_disj_to_tcons_array :
    'Pplite.t Apron.Manager.t ->
    'Pplite.t Apron.Abstract0.t -> int -> Tcons0.t array
    = "camlidl_pplite_ap_pplite_abstract0_disj_to_tcons_array"
  external abstract0_geom_subseteq :
    'Pplite.t Apron.Manager.t ->
    'Pplite.t Apron.Abstract0.t -> 'Pplite.t Apron.Abstract0.t -> bool
    = "camlidl_pplite_ap_pplite_abstract0_geom_subseteq"
  external abstract0_collapse :
    'Pplite.t Apron.Manager.t ->
    'Pplite.t Apron.Abstract0.t -> int -> unit
    = "camlidl_pplite_ap_pplite_abstract0_collapse"
  val manager_is_pplite : 'Apron.Manager.t -> bool
  val manager_is_pplite_loose : 'Apron.Manager.t -> bool
  val manager_is_pplite_strict : 'Apron.Manager.t -> bool
  val manager_of_pplite : 'Pplite.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_pplite_loose :
    Pplite.loose Pplite.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_pplite_strict :
    Pplite.strict Pplite.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_to_pplite : 'Apron.Manager.t -> 'Pplite.t Apron.Manager.t
  val manager_to_pplite_loose :
    'Apron.Manager.t -> Pplite.loose Pplite.t Apron.Manager.t
  val manager_to_pplite_strict :
    'Apron.Manager.t -> Pplite.strict Pplite.t Apron.Manager.t
  module Abstract0 :
    sig
      val is_pplite : 'Apron.Abstract0.t -> bool
      val is_pplite_loose : 'Apron.Abstract0.t -> bool
      val is_pplite_strict : 'Apron.Abstract0.t -> bool
      val of_pplite : 'Pplite.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_pplite_loose :
        Pplite.loose Pplite.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_pplite_strict :
        Pplite.strict Pplite.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val to_pplite : 'Apron.Abstract0.t -> 'Pplite.t Apron.Abstract0.t
      val to_pplite_loose :
        'Apron.Abstract0.t -> Pplite.loose Pplite.t Apron.Abstract0.t
      val to_pplite_strict :
        'Apron.Abstract0.t -> Pplite.strict Pplite.t Apron.Abstract0.t
    end
  module Abstract1 :
    sig
      val is_pplite : 'Apron.Abstract1.t -> bool
      val is_pplite_loose : 'Apron.Abstract1.t -> bool
      val is_pplite_strict : 'Apron.Abstract1.t -> bool
      val of_pplite : 'Pplite.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_pplite_loose :
        Pplite.loose Pplite.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_pplite_strict :
        Pplite.strict Pplite.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val to_pplite : 'Apron.Abstract1.t -> 'Pplite.t Apron.Abstract1.t
      val to_pplite_loose :
        'Apron.Abstract1.t -> Pplite.loose Pplite.t Apron.Abstract1.t
      val to_pplite_strict :
        'Apron.Abstract1.t -> Pplite.strict Pplite.t Apron.Abstract1.t
    end
end