Writing a Game Loop in Haskell
thesoftwaredevelopmentlifecycle.com