sig
  val inverse : float array -> float array
  val eval :
    float array -> float array -> float -> (float * float) * (float * float)
  val rev : 'a array -> 'a array
  val example : unit -> float array * float array
  val approx : float array -> float array -> (float array * float array) list
end