Matthew Fluet wrote:
The implementation of the REAL signature in the Basis Library omits the "where type real = real" constraint on the Math : MATH sub-structure. Without the constraint, when writing a functor with a R : REAL argument, the body of the functor cannot "see" that R.real and R.Math.real are the same type, so the type checker does not allow R.+(R.Math.e, R.Math.pi).
Thanks for pointing that out. Now fixed in CVS. David.