
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

Hi, Am Montag, den 13.03.2017, 16:16 -0400 schrieb Richard Eisenberg:
I move to reject this proposal.
thanks for the good summary. I concur. Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • https://www.joachim-breitner.de/ XMPP: nomeata@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

Agreed.
On 13 March 2017 at 21:37, Joachim Breitner
Hi,
Am Montag, den 13.03.2017, 16:16 -0400 schrieb Richard Eisenberg:
I move to reject this proposal.
thanks for the good summary. I concur.
Joachim
-- Joachim “nomeata” Breitner mail@joachim-breitner.de • https://www.joachim-breitner.de/ XMPP: nomeata@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org _______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

I agree. You might need to write up the notes below into a publicly-readable form, but that should not be hard. (In general, for all our “verdicts” I think we should write up a rationale for the author and others to read.) Simon From: ghc-steering-committee [mailto:ghc-steering-committee-bounces@haskell.org] On Behalf Of Richard Eisenberg Sent: 13 March 2017 20:16 To: ghc-steering-committee@haskell.org Subject: [ghc-steering-committee] Eval proposal (#27) 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 Richard
participants (5)
-
Joachim Breitner
-
Richard Eisenberg
-
Roman Leschinskiy
-
Simon Marlow
-
Simon Peyton Jones