Refactor game state computation
Cleaning up the Tetris module, mainly to favor a MonadState style over explicit `Game -> Game` functions, which were a little awkward. This also led naturally to explicitly isolating `IO`, by having pure state modifiers with types like `Tetris a ~ forall m. StateT Game m a` being executed with `m ~ Identity`, and those few modifiers that need IO specified by `TetrisT a ~ StateT Game IO a`.
This commit is contained in:
parent
09de01695c
commit
ad1fcf9192
6 changed files with 179 additions and 157 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,6 +1,6 @@
|
|||
*.swp
|
||||
*.swo
|
||||
|
||||
tags
|
||||
dist
|
||||
dist-*
|
||||
cabal-dev
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue