Chesskell: A Two-Player Game at the Type Level

slide.png

Chesskell is a full type-level model of Chess (in Haskell’s type system), bundled with a Haskell-embedded Domain Specific Language for interfacing with that type-level model. A Chess game, expressed in Chesskell, will only compile games of Chess that do not break the FIDE Laws of Chess - so if you describe a game that contains a mistake, then your description will not compile.

Although this project started off as my third-year dissertation, it grew into a research paper which my supervisor and I submitted to the Haskell Symposium 2021. Once accepted, I presented this research at the symposium, to a group of very friendly Haskell enthusiasts!