After spending a bit over three months at LShift, I am proud to leave LShift's mark in the Minecraft Universe. Frolicking over Minecraft's cubic pastures and passing by interesting arrangements of hovering dirt blocks suspended in mid-air is all in a Minecrafter's day's work. But if you ever see light-blue wool blocks hanging around in the air, you can be sure that someone's been . . . Shifty . . . The ones you see in the picture above, in fact, have been put into the Minecraft world by a tool I wrote in Haskell. In this multi-part series, I want to share with you how I did it.
A while ago I wrote a semi-port of Haskell’s QuickCheck. Easy enough - a property is like a test method but with arity 1, into which you inject data - potential counterexamples to your theory. In Haskell, the type system can, through unification, figure out the type of the generator required for that property. What [...]