~/talk

Chesskell: A Two-Player Game at the Type Level

Talkat Haskell Symposium 2021 · 2021-08-26..08-27· [haskell]
links:none on file
slides:none on file

A full type-level Haskell model of FIDE 2018 chess is implemented as a composition of first-class families and a continuation-passing-style EDSL where a central type family move transforms board states; it compiles but stresses GHC: an 8-move test with naive move-list check costs 1m37s and 23 GB, removing that check drops to 24s and 8 GB. Algorithmic fixes (ray-based check, finger trees) sometimes cut memory and time (one case: 30.4 GB and 110s → ~half memory and one‑fifth time) but results are unpredictable; adding move numbers to type errors spikes to ~26 GB.

AI-written summary · about

  1. 0:00Start
  2. 8:37Start Continuation
  3. 10:59Algorithmic Improvements
  4. 15:04Memory Usage
  5. 15:47Descriptive Error Messages
  6. 16:13Board Decorator
  7. 16:27Custom Type Errors
  8. 20:21Avoiding the Move List Approach
  9. 24:20Conclusion
  10. 26:12Jeremy Gibbons
~/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.