Automate the boring parts of writing an SDL game in Haskell