Discover
Haskell Weekly
Haskell Weekly
Author: Taylor Fausak
Subscribed: 175Played: 4,275Subscribe
Share
© 2022 Taylor Fausak
Description
Haskell Weekly covers the Haskell progamming language. Listen to professional software developers discuss using functional programming to solve real-world business problems. Each episode uses a conversational two-host format and runs for about 15 minutes.
57 Episodes
Reverse
Thanks to everyone who filled out the 2021 State of Haskell Survey! This week Cameron and Taylor review the results.
https://taylor.fausak.me/2021/11/16/haskell-survey-results/
This week Cameron and Taylor answer our first listener question: How should you structure large applications? We compare ReaderT with MTL along with other approaches.
https://join.slack.com/t/haskell-foundation/shared_invite/zt-mjh76fw0-CEjg2NbyVE8rVQDvR~0F4A
We’re back! After a month off, Cameron and Taylor get together to talk about what’s new in the Haskell world.
https://www.haskell.org/ghc/blog/20211029-ghc-9.2.1-released.html
https://haskellweekly.news/survey/2021.html
Cameron Gera and Taylor Fausak discuss Drew Olson’s adventures in looping. What should you do if you want to loop forever, but break out of the loop early sometimes?
https://blog.drewolson.org/adventures-in-looping
Special guest Tom Sydney Kerckhove talks with Taylor Fausak about a denial of service vulnerability in Aeson, a Haskell library for JSON.
https://cs-syd.eu/posts/2021-09-11-json-vulnerability
https://hackage.haskell.org/package/sydtest-0.4.0.0
https://hackage.haskell.org/package/genvalidity-0.11.0.2
https://hackage.haskell.org/package/yamlparse-applicative-0.2.0.0
Taylor Fausak talks with Cameron Gera about Evoke, Taylor’s latest GHC plugin for deriving instances without generics or Template Haskell.
https://taylor.fausak.me/2021/09/10/evoke/
Curious about dependent types? Special guest Vladislav Zavialov from Serokell breaks it down for us. We discuss comparisons to refinement types, sigma and pi types, interactions with linear types, and much more!
https://serokell.io/blog/developing-ghc-for-a-living
https://twitter.com/int_index
Stack, HLint, and Brittany, oh my! Cameron Gera and Taylor Fausak go on a deep dive into the ACI Learning tech stack.
https://www.acilearning.com
Back from summer break, Cameron Gera discusses the Witch library with it’s author, Taylor Fausak. Learn about the many motivations behind this simple library for converting values between various types.
https://taylor.fausak.me/2021/07/13/witch/
https://hackage.haskell.org/package/say-my-name-0.1.0.0
There’s a lot to like about Haskell, but what is it missing? We explore Alexander Granin’s post where he suggests some topics for books that could benefit the Haskell community.
https://github.com/graninas/The-Voids-Of-Haskell/blob/9b401e33af37f991dcb3ab2eedc023661237d845/README.md
Special guest Marco Sampellegrini talks with us about his recent book, The Simple Haskell Handbook. The book describes a project driven approach to Haskell development, using a continuous integration server as a motivating example.
https://leanpub.com/simple-haskell-book
Should you organize modules vertically or horizontally? This week we take a look at another article by Gabriella Gonzalez, this time about organizing projects and packages.
https://www.haskellforall.com/2021/05/module-organization-guidelines-for.html
How can you avoid deeply nested error handling code? This week we review Gabriella Gonzalez’s trick for keeping error handling flat.
https://www.haskellforall.com/2021/05/the-trick-to-avoid-deeply-nested-error.html
Curious about the Haskell Foundation? This week we interview Andrew Boardman, its Executive Director. He explains the Foundation’s purpose and how you can help.
https://haskell.foundation
https://fpchat-invite.herokuapp.com
https://funprog.zulipchat.com/login/
https://wiki.haskell.org/IRC_channel
https://discourse.haskell.org
https://twitter.com/myShoggoth
https://myshoggoth.com
https://joyofhaskell.com/posts/2021-02-24-why-stm.html
What happens to exceptions when you don’t explicitly handle them? This week we review Taylor’s blog post about default exception handlers.
https://taylor.fausak.me/2021/04/03/default-exception-handler-in-haskell/
Special guest Cody Goodman walks us through an interesting PostgreSQL bug. Handling async exceptions properly is trickier than you might expect!
https://www.parsonsmatt.org/2021/03/17/async_control_flow.html
https://github.com/codygman/tech-roam/blob/master/20210326113249-haskell_persistent_issues_postgres_connections_are_returned_to_pool_too_quickly.org
Byte string, text, and vector, oh my! This week we review Michael Snoyman’s proposal to unify vector-like types. Learn about boxed versus unboxed values, pinned versus unpinned memory, and more.
https://www.snoyman.com/blog/2021/04/haskell-base-proposal/
Special guests Michael Litchard and Brian Hurt talk with us about their new social networking site Chat Wisely. We hear about their experience using Haskell not only on the backend but also on the frontend through GHCJS.
https://www.chatwisely.com
https://www.patreon.com/chatwisely
Special guest Sandy Maguire talks with us about using Haskell Wingman for program synthesis, designing bulletproof abstractions with algebra, wrangling type level programming in Haskell, and managing effects with his Polysemy library.
https://www.patreon.com/wingman_for_haskell
https://leanpub.com/algebra-driven-design
https://leanpub.com/thinking-with-types
https://github.com/polysemy-research/polysemy
https://reasonablypolymorphic.com
https://sandymaguire.me
Linear types finally landed in GHC 9.0.1! We talk through what that means along with other news from the Haskell Foundation and Tweag.
https://discourse.haskell.org/t/haskell-foundation-executive-director-and-chief-technology-officer/1861
https://discourse.haskell.org/t/ghc-8-10-4-released/1847
https://discourse.haskell.org/t/ghc-9-0-1-released/1840
https://www.tweag.io/blog/2021-02-10-linear-base/




This info is wrong. Optics do not perform actual mutations! They perform immutable updates like anything else. They simply allow you to specify a path to a part of a data structure, and reuse that path to access or update that part of a data structure (immutably), or to build optics into larger structures (they compose).