Programming with Refinement Types An Introduction to LiquidHaskell Ranjit Jhala, Eric Seidel, Niki Vazou [PDF] 1.LiquidHaskell: Verification of Haskell with SMTs 1.1. Well-Typed Programs Can Go Wrong 1.2. The Heartbleed Bug. 1.3. The Heartbleed Bug in Haskell 1.4. True is a bad argument 1.5. But, 10 is a good argument 1.6. Partial Functions 1.7. Functional Correctness 1.8. Goal: Extend Type System