Re: [Haskell-cafe] List of nitpicks

quickCheck $ ( (\ xs -> xs == reverse xs ) :: Eq a => [a] -> Bool)
This can be solved, by the way:
https://ro-che.info/articles/2013-02-19-smallcheck#required-type-annotations Very good indeed. But (and here's another nit to pick - about ghc) - your
smallCheck 5 $ \x y -> x == (y :: Integer)
would look much clearer that way:
smallCheck 5 $ \ (x::Integer) (y :: Integer) -> x == y
but ghc complains about missing ScopedTypeVariables and that error message is fully incomprehensible (e.g., to beginning students) as there is no type variable anywhere. There was a PatternSignatures option but it seems gone (deprecated). I believe that (PatternSignatures and) ScopedTypeVariables should be on by default. It is currently off only to help those that are too lazy to write "forall t . " in (inner) declarations? Leaving out quantifiers should never be encouraged. And putting type declarations next to the name declaration (that is, on the "x" under the lambda) should be the normal thing to do. Everything else feels like a work-around, and it is a distraction when teaching. Putting language options at the top of the source file, or in .ghci, is also a distraction. - J.W.

On Sat, Aug 22, 2015 at 6:23 AM, Johannes Waldmann < johannes.waldmann@htwk-leipzig.de> wrote:
I believe that (PatternSignatures and) ScopedTypeVariables should be on by default. It is currently off only to help those that are too lazy to write "forall t . " in (inner) declarations?
More because the language committee is ridiculously conservative. I think this is Public Enemy Number One as far as extensions that really ought to be part of the standard by now. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net

On 08/22/2015 03:33 PM, Brandon Allbery wrote:
On Sat, Aug 22, 2015 at 6:23 AM, Johannes Waldmann < johannes.waldmann@htwk-leipzig.de> wrote:
I believe that (PatternSignatures and) ScopedTypeVariables should be on by default. It is currently off only to help those that are too lazy to write "forall t . " in (inner) declarations?
More because the language committee is ridiculously conservative. I think this is Public Enemy Number One as far as extensions that really ought to be part of the standard by now.
I can only second that. I seems to me that trying to have the default experience in GHC be some sort of Haskell2010 pseudo-standard is not useful[1]. I happen to believe that standards without more than one serious implementor are a terrible way to move things along. Let's *exploit* the fact that there is only one[2] really viable compiler at this precise moment in time, and move things forward more rapidly! [1] I believe there were some AMP things in base/Prelude which mean that GHC-by-default is not technically Haskell2010. [2] I realize that there's JHC, UHC, etc., but let's face it... unless those compilers implement most of the GHC extensions, then you're not going to get anything substantial (e.g. lens) to compile with those compilers. Regards,

I stumbled upon this old proposal which seems hauntingly relevant: http://repetae.net/recent/out/classalias.html
________________________________________
From: Haskell-Cafe
On Sat, Aug 22, 2015 at 6:23 AM, Johannes Waldmann < johannes.waldmann@htwk-leipzig.de> wrote:
I believe that (PatternSignatures and) ScopedTypeVariables should be on by default. It is currently off only to help those that are too lazy to write "forall t . " in (inner) declarations?
More because the language committee is ridiculously conservative. I think this is Public Enemy Number One as far as extensions that really ought to be part of the standard by now.
I can only second that. I seems to me that trying to have the default experience in GHC be some sort of Haskell2010 pseudo-standard is not useful[1]. I happen to believe that standards without more than one serious implementor are a terrible way to move things along. Let's *exploit* the fact that there is only one[2] really viable compiler at this precise moment in time, and move things forward more rapidly! [1] I believe there were some AMP things in base/Prelude which mean that GHC-by-default is not technically Haskell2010. [2] I realize that there's JHC, UHC, etc., but let's face it... unless those compilers implement most of the GHC extensions, then you're not going to get anything substantial (e.g. lens) to compile with those compilers. Regards, _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
participants (4)
-
Bardur Arantsson
-
Brandon Allbery
-
Elliot Cameron
-
Johannes Waldmann