sig
  type unop = Apron.Texpr1.unop = Neg | Cast | Sqrt
  type binop = Apron.Texpr1.binop = Add | Sub | Mul | Div | Mod | Pow
  type typ =
    Apron.Texpr1.typ =
      Real
    | Int
    | Single
    | Double
    | Extended
    | Quad
  type round = Apron.Texpr1.round = Near | Zero | Up | Down | Rnd
  type 'a t =
      Cst of Apron.Coeff.t
    | Var of 'a
    | Unop of Bddapron.Apronexpr.Tree.unop * 'Bddapron.Apronexpr.Tree.t *
        Bddapron.Apronexpr.Tree.typ * Bddapron.Apronexpr.Tree.round
    | Binop of Bddapron.Apronexpr.Tree.binop * 'Bddapron.Apronexpr.Tree.t *
        'Bddapron.Apronexpr.Tree.t * Bddapron.Apronexpr.Tree.typ *
        Bddapron.Apronexpr.Tree.round
  val support :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Tree.t -> 'PSette.t
  val substitute_by_var :
    'Bddapron.Apronexpr.Tree.t ->
    ('a, 'a) PMappe.t -> 'Bddapron.Apronexpr.Tree.t
  val print :
    'Bddapron.Apronexpr.symbol ->
    Format.formatter -> 'Bddapron.Apronexpr.Tree.t -> unit
  val compare :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Tree.t -> 'Bddapron.Apronexpr.Tree.t -> int
  val of_expr :
    'Bddapron.Apronexpr.symbol ->
    Apron.Texpr1.expr -> 'Bddapron.Apronexpr.Tree.t
  val to_expr :
    'Bddapron.Apronexpr.symbol ->
    'Bddapron.Apronexpr.Tree.t -> Apron.Texpr1.expr
end