News for hackers. Stuff that matters.
Re:Wren is a small, fast, class-based concurrent scripting l... by eru on Sunday August 28, 2022 @10:51PM (#32634310)
Haskell already has an extension called UndecidableInstances.

Funny enough, even your basic Hindley-Milner style type inference has exponential runtime in the worst case, even if you don't add any bells nor whistles.

In practice, people don't tend to write code that triggers that worst-case.

Re:Wren is a small, fast, class-based concurrent scripting l... by bjoli on Monday August 29, 2022 @03:13AM (#32635497)
Am I the only one that likes vanilla Haskell? I find that it quickly becomes messy with all the GHC extensions. I am although more of an SML kind of guy.
Re:Wren is a small, fast, class-based concurrent scripting l... by eru on Monday August 29, 2022 @03:40AM (#32635628)
Many libraries try to stick to Haskell 98. Also whenever someone writes a paper about some new techniques, they always seem to take a lot of pleasure in pointing out when their technique works in Haskell 98.

I like that you can mix and match GHC extensions even in the same project. So one library (or even just one module) might use some crazy and messy extensions, but you can still use it from vanilla Haskell.

http://dev.stephendiehl.com/hask/#language-extensions has a list of extensions and some judgement on them.

There are a few that are really neat, but don't really cause any mess:

For example, I really like TupleSections. They are not strictly necessary for anything, they are purely cosmetic / syntactic sugar. But they also don't cause any mess. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/tupl...

Also: TypedHoles are really neat for developing, and will never show up in your final code. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type...

Re:Wren is a small, fast, class-based concurrent scripting l... by neilparikh on Monday August 29, 2022 @06:53AM (#32636634)
GeneralisedNewtypeDeriving is one that I'd consider fairly important as well.
Re:Wren is a small, fast, class-based concurrent scripting l... by eru on Monday August 29, 2022 @08:47AM (#32637513)
And also fairly benign, yes.

In contrast: GADTs are really important, but they get you pretty far away from Vanilla Haskell.