| 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