2048 implementation in Haskell (includes a simulator)