A simple problem

Tom Pledger Tom.Pledger@peace.com
Fri, 19 Jan 2001 13:34:04 +1300


Ashley Yakeley writes:
 > At 2001-01-18 15:38, I wrote:
 > 
 > >3 is not always an Integer. It's of type "(Num a) => a".
 > 
 > Of course, it would be nice if 3 were an Integer, and Integer were a 
 > subtype of Real. I haven't come across a language that does this, where 
 > for instance 3.0 can be cast to Integer (because it is one) but 3.1 
 > cannot be.

A cast in that direction - becoming more specific - would be nicely
typed as:

    Real -> Maybe Integer

or with the help of the fail and return methods:

    Monad m => Real -> m Integer