Listen to regular interviews with the Haskell community. The podcast covers news, libraries, and whatever other topics we wander onto with our guests.
Episode 14 - Richard Eisenberg on Dependent Types in Haskell
00:29 What are dependent type systems?
03:38 applying dependent types to industry
07:30 writing dependently typed programs in Haskell today
09:07 GADTs (Generalized Algebraic Data Types)
11:01 the future of dependent types in GHC
13:40 teaching dependent types
18:03 learning dependent types
20:20 a future style of Haskell programming with dependent types
21:21 Servant and opaleye as an example of type-level features
23:22 tool support for dependently typed programming
24:06 simple applications of dependent types for linear algebra
26:25 Are dependent types worth it?
28:47 complex type system errors
36:26 safe zero-cost coercions
41:20 total vs type safe
48:36 working on GHC’s type system
51:09 using GHC extensions in the GHC source code
53:00 road to Haskell
55:37 teaching Haskell to students
1:03:00 a hopeful future for reliable software through dependent types
Episode 13 - John Wiegley on Categories and Compilers
00:44 using Haskell, Nix, and Emacs for integrated offline development
08:48 building environments for particular dependencies with Nix
09:58 what Emacs and GHC have in common
12:58 developing with typed holes
14:43 compiling to categories
20:35 learning to love mathematics
22:41 applications for compiling to categories
28:15 specifying the ByteString library in Coq
34:30 Why Haskell?
40:00 writing a compiler in C vs Haskell
45:52 getting your head around Haskell
48:23 recursion schemes/F-algebras
Episode 12 - Neil Mitchell on Development Tools
Neil Mitchell shares with us his enthusiasm for building development tools. We hear the story of how he built Hoogle in order to learn Haskell, why he created the Shake build system and what he hopes to accomplish with it, and how he uses hlint in his own development work. We discuss Haskell IDEs (including his own minimal ghcid) and briefly touch on a variety of other development tools and libraries that aim to improve Haskell development. Neil also shares a trick he uses for hunting and fixing space leaks in programs and libraries.
Episode 11 - Austin Seipp on Security
Austin Seipp joins us to discuss Haskell security and infrastructure. We talk about how Haskell security differs from C (and where it doesn’t) and some coming changes to Cabal security. Then we discuss Cryptol: a Haskell-inspired language for implementing cryptographic algorithms in a way that more closely resembles their mathematical specification. Finally, we talk a bit about his work in maintaining the haskell.org infrastructure and his time as a GHC release manager. Along the way, Austin shares about his pet projects, including hardware projects using CλaSH.
Episode 10 - Bryan O'Sullivan on Performance and Efficiency
Bryan O’Sullivan shares his experience helping make developers more efficient, both inside of Facebook as Director of Developer Efficiency and with his various Haskell libraries, some of which you probably know and use already: aeson, attoparsec, criterion, statistics, and text (to name a few). We speak about performance and optimization of Haskell programs and where documentation for “Real World” Haskell development should go from here. Talking with Bryan also reveals how far you can go with Haskell without being overly concerned about category theory and the other math behind the language and libraries.
Episode 9 - Conal Elliott on FRP and Denotational Design
Conal Elliott, inventor of Functional Reactive Programming, tells us about the birth of FRP as well as other stories from his 30+ years of functional programming experience. He shares what he considers the fundamentals of FRP (behaviors and events) and how they work in a model with continuous time. We speak about FRP practicality and efficiency, including how a continuous time model can help lead to a high performance implementation. Eventually we’re led into Denotational Design, which plays a part in the design and refinement of FRP and which Conal considers his simplest and clearest design tool.