<div class="hidden"> \begin{code} main = putStrLn "Easter Egg: to force Makefile" \end{code} </div> LiquidHaskell ============== Refinement Types for Haskell ------------------------------ <br> <br> <div class="fragment"> **Ranjit Jhala** University of California, San Diego <br> <br> Joint work with: N. Vazou, E. Seidel, P. Rondon, M. Kawaguchi D. Vytiniotis, S. Peyton-Jones </div> {#plan} ------- **Part I** Refinement Types <br> <div class="fragment"> **Part II** Case Studies </div> <br> <div class="fragment"> **Part III** Haskell (Lazy Evaluation) </div> {#plan} -------- <br> (And *if* we have time...) <br> **Part IV** Abstract Refinements I: Refinement Types ------------------- <br> <a href="00_Motivation.lhs.slides.html" target="_blank">**Motivation**</a> <br> <div class="fragment"> <a href="01_SimpleRefinements.lhs.slides.html" target="_blank">**Refinements**</a> </div> <br> <div class="fragment"> <a href="02_Measures.lhs.slides.html" target= "_blank">**Measures**</a> </div> II: Case Studies ---------------- <br> <a href="13_RedBlack.lhs.slides.html" target="_blank">**Red-Black Trees**</a> <br> <a href="14_Memory.lhs.slides.html" target="_blank">**Low-level Memory Safety**</a> III: Haskell ------------ <br> <a href="09_Laziness.lhs.slides.html" target="_blank">**Lazy Evaluation**</a> <br> <div class="fragment"> <a href="10_Termination.lhs.slides.html" target="_blank">**Termination**</a> </div> <br> <div class="fragment"> <a href="11_Evaluation.lhs.slides.html" target="_blank">**Evaluation**</a> </div> IV: Abstract Refinements ------------------------ <br> <a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">**Abstracting Refinements over Types**</a> <br> <div class="fragment"> **Demos** <br> + [Basic](../hs/02_AbstractRefinements.hs) + [Induction](../hs/02_AbstractRefinements.hs) + [Recursion](../hs/02_AbstractRefinements.hs) + [Key-Value](../hs/02_AbstractRefinements.hs) </div> Conclusion ---------- <br> <br> <br> <div class="fragment"> <a href="12_Conclusion.lhs.slides.html" target="_blank">[Continue]</a> </div>