Hkvl1j0lzx3gmbllw7j2
SkillsCast

Keynote: Linear Haskell: Practical Linearity in a Higher-Order Polymorphic Language

11th October 2018 in London at CodeNode

There are 38 other SkillsCasts available from Haskell eXchange 2018

Please log in to watch this conference skillscast.

731486806 640

Linear type systems are more often talked about than used. I have long thought that we should be able to use linearity to improve the expressiveness and efficiency of functional programming languages, especially Haskell. But I always got lost in a deep swamp of exclamation marks and upside down ampersand symbols.

Recently, in a collaboration with Tweag I/O, we came up with a new approach to linearity that really does seem to have a good power-to-weight ratio, and that fits smoothly with the existing language. The key ideas is to attach linearity to function arrows, rather than bifurcating types into linear and non-linear versions (the dominant approach).

In this talk I'll explain and motivate the key ideas, from the point of view of a programmer rather than a type theorist, focusing especially on update-in-place, and on I/O protocols. Arnaud Spiwack gave a talk on the same subject last year, and is now busy implementing the ideas in GHC. I hope you will find our complementary perspectives illuminating, and that you'll come away with a clearer picture of the linearity landscape and how we might think about it.

YOU MAY ALSO LIKE:

Thanks to our sponsors

Keynote: Linear Haskell: Practical Linearity in a Higher-Order Polymorphic Language

Simon Peyton Jones

Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

SkillsCast

Please log in to watch this conference skillscast.

731486806 640

Linear type systems are more often talked about than used. I have long thought that we should be able to use linearity to improve the expressiveness and efficiency of functional programming languages, especially Haskell. But I always got lost in a deep swamp of exclamation marks and upside down ampersand symbols.

Recently, in a collaboration with Tweag I/O, we came up with a new approach to linearity that really does seem to have a good power-to-weight ratio, and that fits smoothly with the existing language. The key ideas is to attach linearity to function arrows, rather than bifurcating types into linear and non-linear versions (the dominant approach).

In this talk I'll explain and motivate the key ideas, from the point of view of a programmer rather than a type theorist, focusing especially on update-in-place, and on I/O protocols. Arnaud Spiwack gave a talk on the same subject last year, and is now busy implementing the ideas in GHC. I hope you will find our complementary perspectives illuminating, and that you'll come away with a clearer picture of the linearity landscape and how we might think about it.

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Keynote: Linear Haskell: Practical Linearity in a Higher-Order Polymorphic Language

Simon Peyton Jones

Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

Photos