Learning Haskell with Chess
- recapitulate Haskell types (type, data, product and sum types)
- equality (in particular if using Helium)
- pretty printing pieces, boards, ...
- Define data types that represent boards, squares, positions, pieces and game states.
- Helium: Implement suited eq-functions.
- Implement a function prettyBoard, that transforms a board into a clearly arranged string representation (human readable :-)). Support this function with auxiliary functions that pretty print pieces, squares, ...