seq as type class method

Henning Thielemann lemming at
Thu Nov 5 18:24:46 EST 2009

On Fri, 6 Nov 2009, Stefan Holdermans wrote:

> Henning,
>> I have read in the History of Haskell, that originally 'seq' should be a 
>> method of a type class, that can be automatically derived by a 'deriving' 
>> clause. It was also mentioned that this clean solution was dropped because 
>> of particular experiences with developing a parser. However the arguments 
>> appeared to me, like these were problems of debugging.
> If I understood it correctly, the problem was more general than just 
> debugging. Every introduction of seq in a function could result in the 
> requirement to also adapt the type signatures of calling functions.

Sure, but why was this a problem? Because they had to re-arrange a lot, 
and had to change the signature each time. But once that re-arrangement 
settles, it would be nice to have the Seq type constraint, right?

> What wasn't understood by then is that making a seq a type-class method is 
> not enough to recover parametricity, which was the goal. This is explained in 
> a recent paper by Daniel Seidel and Janis Voigtlaender:
> Daniel Seidel and Janis Voigtlaender. Taming selective strictness.

I'll have a look into it. Thanks for the hint!

More information about the Libraries mailing list