sig
  type 'a man
  and 'a t
  external manager_get_manager : 'Policy.man -> 'Manager.t
    = "camlidl_policy_ap_policy_manager_get_manager"
  external manager : 'Policy.t -> 'Policy.man
    = "camlidl_policy_ap_policy_manager"
  external copy : 'Policy.man -> 'Policy.t -> 'Policy.t
    = "camlidl_policy_ap_policy_copy"
  external fdump : 'Policy.man -> 'Policy.t -> unit
    = "camlidl_policy_ap_policy_fdump"
  external to_string : 'Policy.man -> 'Policy.t -> string
    = "camlidl_policy_ap_policy_to_string"
  external dimension : 'Policy.man -> 'Policy.t -> int
    = "camlidl_policy_ap_policy_dimension"
  external equal : 'Policy.man -> 'Policy.t -> 'Policy.t -> bool
    = "camlidl_policy_ap_policy_equal"
  module Abstract0 :
    sig
      external meet_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> 'Abstract0.t -> 'Abstract0.t
        = "camlidl_policy_ap_abstract0_policy_meet_apply"
      external meet_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t array -> 'Abstract0.t
        = "camlidl_policy_ap_abstract0_policy_meet_array_apply"
      external meet_lincons_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> Lincons0.t array -> 'Abstract0.t
        = "camlidl_policy_ap_abstract0_policy_meet_lincons_array_apply"
      external meet_tcons_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> Tcons0.t array -> 'Abstract0.t
        = "camlidl_policy_ap_abstract0_policy_meet_tcons_array_apply"
      external meet_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> 'Abstract0.t -> unit
        = "camlidl_policy_ap_abstract0_policy_meet_with_apply"
      external meet_lincons_array_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> Lincons0.t array -> unit
        = "camlidl_policy_ap_abstract0_policy_meet_lincons_array_with_apply"
      external meet_tcons_array_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract0.t -> Tcons0.t array -> unit
        = "camlidl_policy_ap_abstract0_policy_meet_tcons_array_with_apply"
      external meet_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract0.t -> 'Abstract0.t -> 'Policy.t
        = "camlidl_policy_ap_abstract0_policy_meet_improve"
      external meet_array_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract0.t array -> 'Policy.t
        = "camlidl_policy_ap_abstract0_policy_meet_array_improve"
      external meet_lincons_array_improve :
        'Policy.man ->
        'Policy.t option ->
        'Abstract0.t -> Lincons0.t array -> 'Policy.t
        = "camlidl_policy_ap_abstract0_policy_meet_lincons_array_improve"
      external meet_tcons_array_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract0.t -> Tcons0.t array -> 'Policy.t
        = "camlidl_policy_ap_abstract0_policy_meet_tcons_array_improve"
    end
  module Abstract1 :
    sig
      external meet_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> 'Abstract1.t -> 'Abstract1.t
        = "camlidl_policy_ap_abstract1_policy_meet_apply"
      external meet_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t array -> 'Abstract1.t
        = "camlidl_policy_ap_abstract1_policy_meet_array_apply"
      external meet_lincons_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> Lincons1.earray -> 'Abstract1.t
        = "camlidl_policy_ap_abstract1_policy_meet_lincons_array_apply"
      external meet_tcons_array_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> Tcons1.earray -> 'Abstract1.t
        = "camlidl_policy_ap_abstract1_policy_meet_tcons_array_apply"
      external meet_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> 'Abstract1.t -> unit
        = "camlidl_policy_ap_abstract1_policy_meet_with_apply"
      external meet_lincons_array_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> Lincons1.earray -> unit
        = "camlidl_policy_ap_abstract1_policy_meet_lincons_array_with_apply"
      external meet_tcons_array_with_apply :
        'Policy.man ->
        'Policy.t -> 'Abstract1.t -> Tcons1.earray -> unit
        = "camlidl_policy_ap_abstract1_policy_meet_tcons_array_with_apply"
      external meet_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract1.t -> 'Abstract1.t -> 'Policy.t
        = "camlidl_policy_ap_abstract1_policy_meet_improve"
      external meet_array_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract1.t array -> 'Policy.t
        = "camlidl_policy_ap_abstract1_policy_meet_array_improve"
      external meet_lincons_array_improve :
        'Policy.man ->
        'Policy.t option ->
        'Abstract1.t -> Lincons1.earray -> 'Policy.t
        = "camlidl_policy_ap_abstract1_policy_meet_lincons_array_improve"
      external meet_tcons_array_improve :
        'Policy.man ->
        'Policy.t option -> 'Abstract1.t -> Tcons1.earray -> 'Policy.t
        = "camlidl_policy_ap_abstract1_policy_meet_tcons_array_improve"
    end
end