This module defines the Position data type, which is used to model
chess positions.
The standard starting position.
The current side to move.
The piece on the given square, or Nothing if the square is empty.
The color of the piece on the given square, or Nothing if the square is
empty.
Tests whether the given square on the board is empty.
The en passant square, or Nothing if no en passant capture is possible.
Current move number in the game.
Tests whether the given side attacks the given square.
Tests whether the side to move is in check.
Tests whether the side to move is checkmated.
A list of all legal moves.
A list of all legal moves from the given square.
Do a move on the board, returning the resulting position.
Tries to initialize a position from a FEN string. Returns Nothing on
failure.
Converts a position to a String in FEN notation.
Converts a position to UCI notation, for sending it to a chess engine with
a position fen <fen> moves ... command.
Type representing a chess position.