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.Domain1.man
  val manager_get_manager :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    ('a, 'b, 'c, 'd) Bddapron.Domain0.man
  val print :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    'Bddapron.Env.t -> 'Bddapron.Cond.t -> Format.formatter -> '-> unit
  val meet_condition_apply :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    'Bddapron.Cond.t ->
    '->
    ('a, 'd) Bddapron.Domain1.t ->
    'Bddapron.Expr1.Bool.t -> ('a, 'd) Bddapron.Domain1.t
  val meet_condition_improve :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    'Bddapron.Cond.t ->
    'f option ->
    ('a, 'd) Bddapron.Domain1.t -> 'Bddapron.Expr1.Bool.t -> 'f
  val meet_condition2_apply :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    '->
    ('a, 'd) Bddapron.Domain1.t ->
    'Bddapron.Expr2.Bool.t -> ('a, 'd) Bddapron.Domain1.t
  val meet_condition2_improve :
    ('a, 'b, 'c, 'd, 'e, 'f) Bddapron.Policy.Domain1.man ->
    'f option ->
    ('a, 'd) Bddapron.Domain1.t -> 'Bddapron.Expr2.Bool.t -> 'f
end