sig
  val make :
    ('a, [> 'Env.typ ] as 'b, [> 'Env.typdef ] as 'c, 'd) Env.O.t ->
    ('a, ('a, 'b, 'c, 'd) Env.O.t) Cond.O.t ->
    Apronexpr.Condition.typ -> 'ApronexprDD.t -> Cudd.Bdd.vt
  val supeq :
    ('a, [> 'Env.typ ] as 'b, [> 'Env.typdef ] as 'c, 'd) Env.O.t ->
    ('a, ('a, 'b, 'c, 'd) Env.O.t) Cond.O.t ->
    'ApronexprDD.t -> Cudd.Bdd.vt
  val sup :
    ('a, [> 'Env.typ ] as 'b, [> 'Env.typdef ] as 'c, 'd) Env.O.t ->
    ('a, ('a, 'b, 'c, 'd) Env.O.t) Cond.O.t ->
    'ApronexprDD.t -> Cudd.Bdd.vt
  val eq :
    ('a, [> 'Env.typ ] as 'b, [> 'Env.typdef ] as 'c, 'd) Env.O.t ->
    ('a, ('a, 'b, 'c, 'd) Env.O.t) Cond.O.t ->
    'ApronexprDD.t -> Cudd.Bdd.vt
  val substitute :
    ('a, [> 'Env.typ ] as 'b, [> 'Env.typdef ] as 'c, 'd) Env.O.t ->
    ('a, ('a, 'b, 'c, 'd) Env.O.t) Cond.O.t ->
    'Apronexpr.Condition.t ->
    ('a, [> `Apron of 'ApronexprDD.t ]) PMappe.t -> Cudd.Bdd.vt
end