Haskell has changed a lot in the last quarter-century. Many of the new added features and library changes require breaking backwards compatibility to make full use of, but there are also many that don’t. So I’ve rewritten the Haskell Report’s “Maybe Utilities” (a.k.a. Data.Maybe) to demonstrate how to write clean, modern Haskell that’s a drop-in replacement for the original.
17 Likes
This post is a bit of an iceberg. If you want to get the most out of it, here’s some challenges:
- Figure out how all of the code works. A few bonus points for doing it without running the code, a lot for no copy/pasting
- Find the breaking changes. The claim of backwards compatibility isn’t fully true. I’m aware of at least a few problems, there’s likely more
- Win $1000 and use the flamethrower. You probably need to be on desktop for this one, sorry
Feel free to ask questions
1 Like
This is horrifying.
Great job!
4 Likes
Amazing, I’m in the middle of it and enjoying immensely ![]()
1 Like