functor (T : sig val robust_comparison_tolerance : float end-> S