filmov
tv
MuniHac 2020 Workshop: Andres Löh - Liquid Haskell

Показать описание
Liquid Haskell is an extension to Haskell that adds refinement types to the language, which are then checked via an external theorem prover such as z3. With refinement types, one can express many interesting properties of programs that are normally out of reach of Haskell's type system or only achievable via quite substantial encoding efforts and advanced type system constructs. On the other hand, the overhead for checking refinement types is often rather small, because the external solver is quite powerful.
Liquid Haskell used to be an external, standalone executable, but is now available as a GHC plugin, making it much more convenient to use.
In this tutorial, we'll discuss how refinement types work, give many examples of their use and learn how to work with Liquid Haskell productively.
Prerequisites
Good familiarity with Haskell basics is useful. However, no knowledge of type system language extensions or type-level programming is required.
Workshop Preparation
Liquid Haskell used to be an external, standalone executable, but is now available as a GHC plugin, making it much more convenient to use.
In this tutorial, we'll discuss how refinement types work, give many examples of their use and learn how to work with Liquid Haskell productively.
Prerequisites
Good familiarity with Haskell basics is useful. However, no knowledge of type system language extensions or type-level programming is required.
Workshop Preparation
MuniHac 2020 Workshop: Andres Löh - Liquid Haskell
MuniHac 2020 Workshop: Christiaan Baaij - Building a RISC-V SoC with Haskell and Python
MuniHac 2020 - Workshop: Alejandro Serrano - Miso: Haskell in the front-end
Andres Löh - Evolving datatypes
MuniHac 2020 Workshop: Michael Sperber - Control your Effects
MuniHac 2020 Workshop: Manuel Bärenz - Video & Game Live Coding in Haskell
Intro to Type Systems and Operational Semantics - Andres Löh | ZuriHac 2022
MuniHac 2020: Lars Hupel - Theorems for Free
MuniHac 2020: Austin Huang - Hasktorch: Differentiable Functional Programming in Haskell
MuniHac 2016: Hakyll
MuniHac 2020: Nicolas Wu - Persistence makes a Difference
MuniHac 2020: Richard Eisenberg - Partial Type Constructors
BOB 2017 - Andres Löh: Write one program, get two (or three, or many)
MuniHac 2020: Edsko de Vries - Being lazy without being bloated
MuniHac 2020: Jamie Willis - Exploring Parsley
MuniHac 2020: Tamar Christina - The new Windows I/O manager (WinIO) in GHC
MuniHac 2020: Neil Mitchell - Migrating HLint to the GHC API
MuniHac 2020: Lars Brünjes - This ain't your Daddy's Probability Monad
MuniHac 2020: Johannes Drever - An Introduction to Applied Category Theory
Staged Sums of Products
Opening Ceremony & Rob Rix - “Languages all the way down” @ ZuriHac 2020
[POPL'22] Staging with Class: A Specification for Typed Template Haskell
Haskell Recap 2020
GHC Core Optimisations - Sebastian Graf - 2023 GHC Contributor's Workshop
Комментарии