sig
  type ('a, 'b, 'c, 'd, 'e, 'f) man =
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.PDomain0.man = {
    man : ('a, 'b, 'c, 'd) Bddapron.Domain0.man;
    pman : 'e;
    print :
      '->
      'Bddapron.Env.t ->
      'Bddapron.Cond.t -> Format.formatter -> '-> unit;
    meet_condition_apply :
      '->
      'Bddapron.Env.t ->
      'Bddapron.Cond.t -> '-> '-> 'Bddapron.Expr0.Bool.t -> 'd;
    meet_condition_improve :
      '->
      'Bddapron.Env.t ->
      'Bddapron.Cond.t -> 'f option -> '-> 'Bddapron.Expr0.Bool.t -> 'f;
  }
  type ('a, 'b) mtbdd =
      ('a, 'b, ('a, 'b) Bddapron.Mtbdddomain0.man,
       'Bddapron.Mtbdddomain0.t,
       ('a, 'b) Bddapron.Policy.PMtbdddomain0.man,
       'Bddapron.Policy.PMtbdddomain0.t)
      Bddapron.Policy.Domain0.man
  val manager_get_manager :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
    ('a, 'b, 'c, 'd) Bddapron.Domain0.man
  val print :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
    'Bddapron.Env.t -> 'Bddapron.Cond.t -> Format.formatter -> '-> unit
  val meet_condition_apply :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
    'Bddapron.Env.t ->
    'Bddapron.Cond.t -> '-> '-> 'Bddapron.Expr0.Bool.t -> 'd
  val meet_condition_improve :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain0.man ->
    'Bddapron.Env.t ->
    'Bddapron.Cond.t -> 'f option -> '-> 'Bddapron.Expr0.Bool.t -> 'f
  val make_mtbdd :
    ?global:bool ->
    symbol:'Bddapron.Env.symbol ->
    'Apron.Policy.man -> ('a, 'b) Bddapron.Policy.Domain0.mtbdd
end