Due to a variety of issues (e.g. preparing for CppCon) I haven’t touched Hasteroids since May. During that hiatus stack came on the scene, and it is much nicer than using Cabal alone. So I converted Hasteroids to be a stack project, really all it took was issuing the
stack init command in the existing directory and then adding the resulting configuration file to git.
The only problem that I ran into was that the build profile that I’m using was forcing me to use sdl2 2.0 and this was causing some breakage as sdl2 went through a major reorganization on its way to 2.0. The old, low-level library that I had been using was moved into the module
SDL.Raw. I could have just updated the module name in my imports and been done with it, but the sdl2 folks also created a higher level library on top of it that doesn’t require all the foreign function interface gymnastics that the old library did. It was relatively straight-forward to convert to the new library so I did so and now the code is much cleaner. The changes are under the blog-post-2015-09-28 tag in git. Hopefully I’ll have more time to play with it soon.