!9/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;Basic data types and functions related to the game of chess(c) Mario Lang, 2019BSD3mlang@blind.guru experimentalNone "#$%*7P_ap$ QchessIO=The starting position as given by the FEN string "rnbqkbnrpppppppp8888 PPPPPPPP/RNBQKBNR w KQkq - 0 1".VchessIO3Construct a position from Forsyth-Edwards-Notation.WchessIO/Convert a position to Forsyth-Edwards-Notation.XchessIOJParse a move in the format used by the Universal Chess Interface protocol.YchessIOLConvert a move to the format used by the Universal Chess Interface protocol.chessIO<Validate that a certain move is legal in the given position.ZchessIO#Apply a move to the given position.[This function checks if the move is actually legal and throws and error if it isn't. See [- for a version that omits the legality check.[chessIOAn unsafe version of Z. Only use this if you are sure the given move can be applied to the position. This is useful if the move has been generated by the \ function.\chessIO9Generate a list of possible moves for the given position.]chessIOReturns  if D# is in check in the given position.^0  !"#$%&'()*+,-./123456789:;<=>?@ABCDEFGIJKLMHNOPQRSTUVWXYZ[\]^DEFS0  !"#$%&'()*+,-./123456789:;<=>?@ABCUTGIJKLMHQR]VWNOPXY\Z[None "#$%*7P_ap- chessIOWSet the starting position of the current game, also clearing any pre-existing history.chessIOMStart a UCI engine with the given executable name and command line arguments.chessIO=Start a UCI engine with the given timeout for initialisation._If the engine takes more then the given microseconds to answer to the initialisation request, : is returned and the external process will be terminated.chessIO5Wait until the engine is ready to take more commands.chessIOSend a command to the engine.cThis function is likely going to be removed and replaced by more specific functions in the future.chessIO(Set a spin option to a particular value.MBounds are validated. Make sure you don't set a value which is out of range.chessIO7Return the final position of the currently active game.chessIO?Add the given move (in algebraic notation) to the current game.chessIOAdd a  to the game history.AThis function checks if the move is actually legal, and throws a  if it isn't.chessIOQuit the engine.0swtuvxyz{|}~0swtuvxyz{|}~Safe "#$%*7P_ap/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&chessIO-0.2.0.0-6bNThPeQ7hSLsoafxq7ODC Game.ChessGame.Chess.UCI Paths_chessIOMovePositioncolorSqA1B1C1D1E1F1G1H1A2B2C2D2E2F2G2H2A3B3C3D3E3F3G3H3A4B4C4D4E4F4G4H4A5B5C5D5E5F5G5H5A6B6C6D6E6F6G6H6A7B7C7D7E7F7G7H7A8B8C8D8E8F8G8H8ColorWhiteBlack PieceTypePawnKnightBishopRookQueenKingfromSANtoSAN unsafeToSANstartpospieceAtopponentisDarkisLightfromFENtoFENfromUCItoUCI applyMoveunsafeApplyMovemovesinCheck $fShowMove $fShowFrom $fEqPieceType$fShowPieceType $fEqColor $fShowColor $fEqPiece $fShowPiece $fBoundedSq$fEnumSq$fEqSq$fShowSq $fEqCastling $fOrdCastling$fShowCastling$fEqBB$fShowBB $fEqPosition$fEqMove $fEqDirection$fShowDirectionOptionCheckBoxComboBox SpinButtonStringButton comboBoxValuecomboBoxValuesspinButtonValuespinButtonMinBoundspinButtonMaxBoundInfoPVDepthSelDepthTimeMultiPVScore UpperBound LowerBoundNodesNPSTBHitsHashFullCurrMoveCurrMoveNumber UCIExceptionSANError IllegalMoveEnginenameauthoroptionsreadInfo tryReadInfo readBestMovetryReadBestMove setPositionstartstart'send getOptionsetOptionSpinButtoncurrentPositionmoveaddMovequitquit'$fExceptionUCIException$fIsStringOption$fShowUCIException $fShowInfo $fEqOption $fShowOption $fShowCommand relativeToghc-prim GHC.TypesTruebase GHC.MaybeNothingisreadyversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName