sig
  type 'a t
  external manager_alloc : 'Manager.t -> 'Disjunction.t Manager.t
    = "camlidl_disjunction_ap_disjunction_manager_alloc"
  external manager_decompose : 'Disjunction.t Manager.t -> 'Manager.t
    = "camlidl_disjunction_ap_disjunction_manager_decompose"
  external to_lincons0_set :
    'Disjunction.t Manager.t ->
    'Disjunction.t Abstract0.t -> Lincons0.t array
    = "camlidl_disjunction_ap_disjunction_to_lincons0_set"
  val to_lincons1_set :
    'Disjunction.t Manager.t ->
    'Disjunction.t Abstract1.t -> Lincons1.earray
  external _decompose :
    'Disjunction.t Manager.t ->
    'Disjunction.t Abstract0.t -> 'Abstract0.t array * int
    = "camlidl_disjunction_ap_disjunction__decompose"
  val decompose :
    'Disjunction.t Manager.t ->
    'Disjunction.t Abstract0.t -> 'Abstract0.t array
  external compose :
    'Disjunction.t Manager.t ->
    'Abstract0.t array -> 'Disjunction.t Abstract0.t
    = "camlidl_disjunction_ap_disjunction_compose"
  val manager_is_disjunction : 'Manager.t -> bool
  val manager_of_disjunction : 'Disjunction.t Manager.t -> 'Manager.t
  val manager_to_disjunction : 'Manager.t -> 'Disjunction.t Manager.t
  module Abstract0 :
    sig
      val is_disjunction : 'Abstract0.t -> bool
      val of_disjunction : 'Disjunction.t Abstract0.t -> 'Abstract0.t
      val to_disjunction : 'Abstract0.t -> 'Disjunction.t Abstract0.t
    end
  module Abstract1 :
    sig
      val is_disjunction : 'Abstract1.t -> bool
      val of_disjunction : 'Disjunction.t Abstract1.t -> 'Abstract1.t
      val to_disjunction : 'Abstract1.t -> 'Disjunction.t Abstract1.t
    end
end