sig
  val eq : r -> r -> bool
  val add : r -> r -> r
  val zero : r
  val neg : r -> r
  val mul : r -> r -> r
  val one : r
  val to_string : r -> string
  val inv : r -> r
end