sig
  type agg_op = Pluse | Multe
  type bin_op = Dive | Mode
  type un_op = Abse
  type var = Var of Fcl_var.Fd.t | Aux of int
  type t =
      Agg of Fcl_expr.agg_op * (int * Fcl_expr.t) list * int
    | Bin of Fcl_expr.bin_op * Fcl_expr.t * Fcl_expr.t
    | Un of Fcl_expr.un_op * Fcl_expr.t
    | Inte of int
    | Fde of Fcl_expr.var
  val fprint : Pervasives.out_channel -> Fcl_expr.t -> unit
  val eval : Fcl_expr.t -> int
  val min_of_expr : Fcl_expr.t -> int
  val max_of_expr : Fcl_expr.t -> int
  val min_max_of_expr : Fcl_expr.t -> int * int
  val compare_expr : Fcl_expr.t -> Fcl_expr.t -> int
  val compare_intexpr : int * Fcl_expr.t -> int * Fcl_expr.t -> int
  val reduce : Fcl_expr.t -> Fcl_expr.t
  val constrain : Fcl_expr.t -> Fcl_linear.operator -> Fcl_cstr.t
end