Skip to content
0:00 / 0:00

#haskellrecords#overloadedrecorddot#optics

Haskell records in 2025 (Haskell Unfolder #45)

Well-Typed

3.4K subscribers • 14 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.

Intermediate. Assumes working knowledge.

3.1K views1 year ago1 recommendation

Programming languagesHaskellLanguage design and type systems

An overview of how to use Haskell records effectively using modern language extensions and optics.

Haskell records as originally designed have had a reputation of being somewhat weird or, at worst, useless. A lot of features and modifications have been proposed over the years to improve the situation. But not all of these got implemented, or widespread adoption. The result is that the situation now is quite different from what it was in the old days, and additional changes are in the works. But the current state can be a bit confusing. Therefore, in this episode, we are going to look at how to make best use of Haskell records right now, discussing extensions such as DuplicateRecordFields, NoFieldSelectors, OverloadedRecordDot and OverloadedRecordUpdate, and we'll take a brief look at optics.

Why it's here

1 person recommends this

u/kosmikusin r/haskell • Recommends

Haskell records in 2025 (Haskell Unfolder #45) Will be streamed live today, 2025-06-25, 1830 UTC. Abstract: *Haskell records as originally designed have had a reputation of being somewhat weird or, at worst, useless. A lot of features and modifications have been proposed over the years to improve the situation. But not all of these got implemented, or widespread adoption. The result is that the situation now is quite different from what it was in the old days, and additional changes are in the works. But the current state can be a bit confusing. Therefore, in this episode, we are going to look at how to make best use of Haskell records right now, discussing extensions such as* `DuplicateR…

u/jeffstyrin r/haskell • Mentions

On “What do Haskell devs like and dislike about Haskell”

> No sane record system. > > It’s kind of okay now—check link to this video Record update is kind of broken in the case of overlapping field names, which drives me nuts. I don't think a fix has been designed. > Stuff that should be default isn’t, like Text. > > You can use another prelude That doesn't help with all the existing API in other libraries, which are returning `String` or taking `String` as input. > Tooling can be a pain—especially HLS, which has some annoying bugs. > > Feel free to contribute! That's not really a fair response. Not every developer is qualified to work on every piece of tooling they find a bug in. This reads as a passive-aggressive way of saying that someone is not al…

u/n00bombin r/haskell • Mentions

On “What do Haskell devs like and dislike about Haskell”

> No sane record system. It’s kind of okay now—check link to this video > Stuff that should be default isn’t, like Text. You can use another prelude, such as https://hackage.haskell.org/package/relude. > Tooling can be a pain—especially HLS, which has some annoying bugs. Feel free to contribute! > Also, there’s no default string interpolation. This is happening: https://github.com/ghc-proposals/ghc-proposals/pull/570.