Skip to content
0:00 / 0:00

#haskell#gadts#typeclasses

Making sense of the Haskell type system by Ryan Lemmer at FnConf17

ConfEngine

14K subscribers • 20 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by Ryan Lemmer

Intermediate. Assumes working knowledge.

17K views8 years ago2 recommendations

Programming languagesHaskellLanguage design and type systems

Ryan Lemmer explains the evolution of the Haskell type system from Haskell 98 to modern extensions like GADTs and kind polymorphism.

There are several great books and courses that serve as an introduction to functional programming in Haskell. Typically, these introductions focus on the original core of Haskell ("Haskell 98"). However, going from there into real world Haskell systems can be a bewildering experience. This is because Haskell has evolved significantly since Haskell 98. In this talk we will investigate the key advances in the type-system that make up "modern Haskell". type-system extensions: GADTs, multi-param type-classes, functional dependencies, ... kind-system extensions: type functions, kind polymorphism, type promotion, ... By taking a historical perspective we will look at why new language extensions were introduced, and the context in which they first appeared. This approach gives us a layered view of seemingly disparate language features. We will see that the evolution of the type system has been a steady march from term-level programming to type-level programming, and ultimately dependently-typed programming in Haskell. (This talk will draw from the book "Haskell Design Patterns") Conference link: functionalconf.com More details: confengine.com/functional-conf-2017/proposal/3914

Why it's here

2 people recommend this

What people say. Recommended as a good walkthrough of advanced Haskell type system extensions.

Hail_Spacecakeon Lobsters • Recommends

Making sense of the Haskell type system

u/dbramucciin r/haskell • Recommends

On “Perspective: people overcomplicate monads”

I can't say I know the perfect series of tutorials *but* * If you want to learn about many advanced pieces of the type system (with extensions), I think "Making sense of the Haskell type system by Ryan Lemmer at FnConf17" does a good job at walking the watcher through the landscape. * If you are lost on lenses and optics, I think Chris Penner's Optics by Example can do a good job at giving you a working knowledge to get started with so that you have something to mentally latch onto while reading the latest in optics development. But I can't think of a series of story driven tutorials or refactoring based tutorials like the one that I posted here off the top of my head. You can also try…

u/profesh_2_deathin r/scala • Mentions

On “I blogged about data and using type parameters to encode constraints in data types”

I love that hkd blog post. You should really check out this talk too link to this video