An implementation of chess in yesod. 99.5% functional. No underpromotion and no en passant capture.