functor (R : Ring.Euclidean->
  sig
    type t = R.t * R.t
    val gcd : R.t -> R.t -> R.t
    val canonize : Field.Fractions.t -> Field.Fractions.t
    val eq : Field.Fractions.t -> Field.Fractions.t -> bool
    val add : Field.Fractions.t -> Field.Fractions.t -> Field.Fractions.t
    val zero : Field.Fractions.t
    val neg : Field.Fractions.t -> Field.Fractions.t
    val mul : Field.Fractions.t -> Field.Fractions.t -> Field.Fractions.t
    val one : Field.Fractions.t
    val inv : Field.Fractions.t -> Field.Fractions.t
    val to_string : Field.Fractions.t -> string
  end