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
--

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to