sig
  val neg :
    Numerors_arithmetics.t -> Numerors_arithmetics.t -> I.t Eval.or_bottom
  val add :
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
  val sub :
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
  val mul :
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
  val div :
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t ->
    Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
end