~/talk

Eliminating Bugs with Dependent Haskell (Experience Report)

links:none on file
slides:none on file

Facebook uses Dependent Haskell to harden the Haskell Thrift compiler and Sigma rules, proving practical at production scale. The Haskell compiler encodes resolved vs unresolved ASTs, type-level schemas and membership proofs so it prevents invalid enum constants and avoids the C++ compiler’s infinite loop. Type distinctions uncover hundreds of bugs (silent drops of synchronous responses) and make data fetches and cache lookups type safe while keeping runtime performance acceptable.

AI-written summary · about

  1. 0:00Intro
  2. 0:51Haskell @ Facebook
  3. 1:33Programming with Dependent Types
  4. 2:41The Thrift IDL
  5. 3:23Thrift Examples
  6. 4:18The Haskell Thrift Compiler
  7. 4:49Basic AST Design
  8. 5:41Constrained Data Structures
  9. 7:21Bug: Infinite Loops
  10. 8:18Sync vs Async Rules
  11. 9:19Sync vs Async Code
  12. 10:26Associated Types
  13. 12:30Typed Data Fetches
  14. 14:06Struct Schemas
  15. 15:13Typechecking Structs
  16. 15:55Enum Schemas
  17. 16:44Typechecking Enums
  18. 18:08More Bugs: Enum Typechecking
  19. 18:47More Bugs: Implicit Coercions
  20. 19:25More Bugs: Ambiguous References
  21. 20:19Schematized Inputs
  22. 21:00Solution: Type-Level Schemas
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.