sig
  type loose
  type strict
  type grid
  type 'a t
  external manager_alloc_loose : unit -> Ppl.loose Ppl.t Apron.Manager.t
    = "camlidl_ppl_ap_ppl_manager_alloc_loose"
  external manager_alloc_strict : unit -> Ppl.strict Ppl.t Apron.Manager.t
    = "camlidl_ppl_ap_ppl_manager_alloc_strict"
  external manager_alloc_grid : unit -> Ppl.grid Ppl.t Apron.Manager.t
    = "camlidl_ppl_ap_ppl_manager_alloc_grid"
  val manager_is_ppl : 'Apron.Manager.t -> bool
  val manager_is_ppl_loose : 'Apron.Manager.t -> bool
  val manager_is_ppl_strict : 'Apron.Manager.t -> bool
  val manager_is_ppl_grid : 'Apron.Manager.t -> bool
  val manager_of_ppl : 'Ppl.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_ppl_loose :
    Ppl.loose Ppl.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_ppl_strict :
    Ppl.strict Ppl.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_of_ppl_grid :
    Ppl.grid Ppl.t Apron.Manager.t -> 'Apron.Manager.t
  val manager_to_ppl : 'Apron.Manager.t -> 'Ppl.t Apron.Manager.t
  val manager_to_ppl_loose :
    'Apron.Manager.t -> Ppl.loose Ppl.t Apron.Manager.t
  val manager_to_ppl_strict :
    'Apron.Manager.t -> Ppl.strict Ppl.t Apron.Manager.t
  val manager_to_ppl_grid :
    'Apron.Manager.t -> Ppl.grid Ppl.t Apron.Manager.t
  module Abstract0 :
    sig
      val is_ppl : 'Apron.Abstract0.t -> bool
      val is_ppl_loose : 'Apron.Abstract0.t -> bool
      val is_ppl_strict : 'Apron.Abstract0.t -> bool
      val is_ppl_grid : 'Apron.Abstract0.t -> bool
      val of_ppl : 'Ppl.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_ppl_loose :
        Ppl.loose Ppl.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_ppl_strict :
        Ppl.strict Ppl.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val of_ppl_grid :
        Ppl.grid Ppl.t Apron.Abstract0.t -> 'Apron.Abstract0.t
      val to_ppl : 'Apron.Abstract0.t -> 'Ppl.t Apron.Abstract0.t
      val to_ppl_loose :
        'Apron.Abstract0.t -> Ppl.loose Ppl.t Apron.Abstract0.t
      val to_ppl_strict :
        'Apron.Abstract0.t -> Ppl.strict Ppl.t Apron.Abstract0.t
      val to_ppl_grid :
        'Apron.Abstract0.t -> Ppl.grid Ppl.t Apron.Abstract0.t
    end
  module Abstract1 :
    sig
      val is_ppl : 'Apron.Abstract1.t -> bool
      val is_ppl_loose : 'Apron.Abstract1.t -> bool
      val is_ppl_strict : 'Apron.Abstract1.t -> bool
      val is_ppl_grid : 'Apron.Abstract1.t -> bool
      val of_ppl : 'Ppl.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_ppl_loose :
        Ppl.loose Ppl.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_ppl_strict :
        Ppl.strict Ppl.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val of_ppl_grid :
        Ppl.grid Ppl.t Apron.Abstract1.t -> 'Apron.Abstract1.t
      val to_ppl : 'Apron.Abstract1.t -> 'Ppl.t Apron.Abstract1.t
      val to_ppl_loose :
        'Apron.Abstract1.t -> Ppl.loose Ppl.t Apron.Abstract1.t
      val to_ppl_strict :
        'Apron.Abstract1.t -> Ppl.strict Ppl.t Apron.Abstract1.t
      val to_ppl_grid :
        'Apron.Abstract1.t -> Ppl.grid Ppl.t Apron.Abstract1.t
    end
end