sig
  type ('a, 'b) man =
    ('a, 'b) Bddapron.Policy.PMtbdddomain0.man = {
    man : ('a, 'b) Bddapron.Mtbdddomain0.man;
    papron : 'b Apron.Policy.man;
    ptable : 'b Bddapron.Policy.DPolicy.table;
    betable : 'a Bddapron.Policy.DDDnf.table;
    symbol : 'a Bddapron.Env.symbol;
  }
  type 'a t = 'a Bddapron.Policy.PMtbdddomain0.t
  val manager_get_manager :
    ('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
    ('a, 'b) Bddapron.Mtbdddomain0.man
  val make_man :
    ?global:bool ->
    symbol:'a Bddapron.Env.symbol ->
    'b Apron.Policy.man -> ('a, 'b) Bddapron.Policy.Mtbdddomain0.man
  val equal :
    'a ->
    'b Bddapron.Policy.Mtbdddomain0.t ->
    'b Bddapron.Policy.Mtbdddomain0.t -> bool
  val print :
    ('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
    'c Bddapron.Env.t ->
    'c Bddapron.Cond.t ->
    Format.formatter -> 'b Bddapron.Policy.Mtbdddomain0.t -> unit
  val meet_condition_apply :
    ('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
    'a Bddapron.Env.t ->
    'a Bddapron.Cond.t ->
    'b Bddapron.Policy.Mtbdddomain0.t ->
    'b Bddapron.Mtbdddomain0.t ->
    'a Bddapron.Expr0.Bool.t -> 'b Bddapron.Mtbdddomain0.t
  val meet_condition_improve :
    ('a, 'b) Bddapron.Policy.Mtbdddomain0.man ->
    'a Bddapron.Env.t ->
    'a Bddapron.Cond.t ->
    'b Bddapron.Policy.Mtbdddomain0.t option ->
    'b Bddapron.Mtbdddomain0.t ->
    'a Bddapron.Expr0.Bool.t -> 'b Bddapron.Policy.Mtbdddomain0.t
end