[ghc-steering-committee] Eval proposal (#27)

Richard Eisenberg rae at cs.brynmawr.edu
Mon Mar 13 20:16:23 UTC 2017


I am shepherding the Eval class proposal, #29. Very, very briefly, this proposes to bring back

> class Eval a where
>   seq :: a -> b -> b

The author of the proposal cites some motivation, but a recurring theme in the discussion is that this is just the first step toward some ill-defined promised land. The author himself admits he’s not quite sure what the promised land holds, other than safety under eta-expansion, along with a restoration of parametricity.

The proposal includes a new extension, on by default, -XUniversalEval, that adds Eval constraints in many places. Even with -XUniversalEval, however, this extension is not fully backward compatible, in corner cases (seq’ing in a class method; polymorphic recursion, possibly higher-rank types.

I move to reject this proposal. The author (along with a few others) argues that this brings some nice theoretical properties to Haskell. I agree here. But the cost doesn’t seem to be worth the benefit, especially considering that this may be the first step toward some ill-specified goal. In short, while I might be happy enough with the language proposed here, I don’t relish the idea of getting from where we are to that language, and I don’t think the gain is worth the pain.

You can see the PR here: https://github.com/ghc-proposals/ghc-proposals/pull/27 <https://github.com/ghc-proposals/ghc-proposals/pull/27>

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20170313/e2d3d265/attachment.html>


More information about the ghc-steering-committee mailing list