LiquidHaskell Refinement Types for Haskell
summary
Covers refinement types and LiquidHaskell: extending Haskell’s type system with logical predicates to specify and verify value-dependent properties. Describes what LiquidHaskell can check—examples include totality (e.g., whether head can crash), termination (e.g., whether mergeSort loops), memory-safety (SEGFAULTs), and correctness invariants for libraries such as containers, hscolour, bytestring, text, vector-algorithms and xmonad.
AI-written summary · about
chapters (9)
- 0:00Start
- 15:04Exercise: Positive Integers
- 16:13Predicate Subtyping
- 17:26Example: Natural Numbers
- 30:12Specifying the Length of a List
- 32:00Exercise: Partial Functions
- 39:14Exercise: map
- 56:04Exercise: Ordered Pairs
- 58:20Exercise: Valid CSV Tables
related talks
01h 57mTypes as Program Specifications: A Intro to Type-Level Programming in Haskell
01h 03mHow to use Phantom Types and Existential Types in Production
35mThe Mastermind behind Refinement Types
45mDepending on Types
55mKeynote: Propositions as Types
39mDependent Types in Haskell
01h 12mTruth about Types
56mWrite You Some Proofs for Great Good
