game of life in haskell