title: Representing a chessboard in Haskell
body: <p>I'm trying to implement a function in Haskell that returns a list containing all possible moves for the player who's up. The function's only argument is a String composed of an actual state of the board (in <a href="https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation" rel="nofollow noreferrer">Forsyth-Edwards Notation</a> ) followed by the moving player(b/w).</p>
  <p>Notation example : rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w (starting board state)</p>
  <p>A move is transmitted as a string of the form [origin]-[destination]. The destination is always a position of the form [column][row], where the lower left square is called a1 and the upper right square is called h8. A move would be for example the move &quot;b3-c4&quot;. (no castling/En-passant).</p>
  <p>In Java I would use a 2d Array for the Board, but in Haskell I can't find a similar solution (I'm new to functional programming).</p>
  <p><strong>What would be a good way/data structure to represent the chess board in?</strong></p>