Chess in Haskell