Polymorphic strict fields
Ashley Yakeley
ashley at semantic.org
Thu May 3 01:47:51 EDT 2007
Iavor Diatchki wrote:
> Notice, furthermore, that the behavior of such constructors may be a
> bit unexpected when combined with overloading. Consider, for example,
> the following declarations:
>
>> data T = T !(forall a. Eq a => a)
>> test = seq (T undefined) True
>
> In GHC 6.6 ``test`` evaluets to ``True`` because ``undefined`` is
> converted to a function that expects its implict evidence argument.
It's the same with functions:
myseq :: (forall a. Eq a => a) -> b -> b
myseq = seq
myseq undefined True
==> True
--
Ashley Yakeley
More information about the Haskell-prime
mailing list