
16 Apr
2007
16 Apr
'07
2:18 p.m.
At Mon, 16 Apr 2007 13:44:13 +0100, Neil Mitchell wrote:
Hi,
So my question is if this is safe? Will the compiler always pick the "right one"? Is there a better way to do this?
I noticed that the results can be a bit suprising sometimes. See if you can predict the answers to these (in ghci):
same 1 1
let x = (undefined :: a) in same x x
f :: a -> Bool f a = same a a
f (undefined :: a)
Here is what ghci says: *Main> same 1 1 False *Main> :t 1 1 :: forall t. (Num t) => t *Main> let x = (undefined :: a) in same x x False
f :: a -> Bool f a = same a a
*Main> f (undefined :: a) True I'm not saying anything is wrong here. Just be careful how you use it :) j.