| Officially `eval' should be of type
| 
| > eval                                :: (Eval a) => [a] -> ()
| 
| which leads me to the question whether this is a bug or a feature.

It's a bug, I'm afraid.  (GHC's handling of seq isn't up to snuff, as the
notes say.  But it still shouldn't have got the type wrong.)


| Iwould love to hear that `seq' is truely polymorphic. Amongst other
| things one could define the strict monad which is not possible in
| Haskell 1.4.

You wouldn't really love to hear it!  It would mean you lose parametricity,
which is what guarantees the correctness of foldr/build deforestation, and
of securely-encapsulated state (runST).

Simon

Reply via email to