sig
  module type S =
    sig
      val epsilon : float
      val ( >=. ) : float -> float -> bool
      val ( <=. ) : float -> float -> bool
      val ( =. ) : float -> float -> bool
      val ( >. ) : float -> float -> bool
      val ( <. ) : float -> float -> bool
      val ( <>. ) : float -> float -> bool
      val robustly_compare : float -> float -> int
    end
  module Make : functor (T : sig val epsilon : float end-> S
end