Talk:Learning Haskell with Chess
list handling vs. abstract data types (array)
Lists are very inefficient, but understanding list handling is important for understanding functional programming. On the other hand, using
Array would provide understanding for abstract data types.
full ruleset vs. reduced and simplified ruleset
To implement the full ruleset you have to remember and consider previous states (in particular for castling rule and capturing en passant).
representation of positions
type Pos = (Int,Int) ok? Or better something like
type Pos = (Row, Column), data Row = A | B | ... | H, data Column = ?. How to model the constraints (0<=x,y<=7)?