
Moving over to haskell-cafe... At 2001-01-18 05:16, Saswat Anand wrote:
fun 3 --gives error in Hugs fun (3::Integer) -- OK
I am a building an embedded language, so don't want user to cast. Is there a solution?
On Thu, Jan 18, 2001 at 03:38:10PM -0800, Ashley Yakeley wrote:
3 is not always an Integer. It's of type "(Num a) => a". I couldn't find a way to say that every Num is a C.
I didn't try to say every Num is C, but I found a way to make his example work: class C a where fun :: a -> Integer instance Integral a => C a where fun = toInteger . succ One has no trouble whatsoever with evaluating fun 3 with this instance defined instead of the original. I'm not sure as to the details, as I'm fuzzy on the typing derivations making heavy use of qualified types. Is this the monomorphism restriction biting us again? Cheers, Bill -- <nrut> how does one decide if something is undecidable? <Galois> carefully --