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

preview_player
Показать описание
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")

Рекомендации по теме