h$"u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None #$%&+8?-chessIOlaw: square i x ! i = x where inRange (0,63) i && inRange (0,15) x1chessIOMove a nibble. Note that this function, while convenient, isn't very fast as it needs to lookup the source nibble value.>chessIO bitwise XOR<  !"#$%&'()*+,-./0123456789:;< !"#$%&'()*0 +,-./123456789:;;Basic data types and functions related to the game of chess(c) Mario Lang, 2020BSD3mlang@blind.guru experimentalNone #$%&+8? XchessIO active colorZchessIOnumber of the full movechessIO=The starting position as given by the FEN string "rnbqkbnrpppppppp8888 PPPPPPPP/RNBQKBNR w KQkq - 0 1".chessIO3Construct a position from Forsyth-Edwards-Notation.chessIO/Convert a position to Forsyth-Edwards-Notation.chessIOParse a move in the format used by the Universal Chess Interface protocol.chessIOConvert a move to the format used by the Universal Chess Interface protocol.chessIO?S None #$%&+8?;Basic data types and functions related to the game of chess(c) Mario Lang, 2020BSD3mlang@blind.guru experimentalNone #$%&+8?^RTSUVWYXZ[_^ph`\]abcdefgijklmnoqrstuvwxyz{|}~[_^ph`\]abcdefgijklmnoqrstuvwxyz{|}~RTSWXZYUVNone #$%&+8? None #$%&'(+8?bNone #$%&+8?chessIOA Polyglot opening book.chessIO(Create a PolyglotBook from a ByteString.chessIO Pick a random ply from the book.chessIO:Probe the book for all plies known for the given position.  None #$%&+8? chessIOSet the starting position of the current game, also clearing any pre-existing history.chessIOStart 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.chessIO'Instruct the engine to begin searching.chessIOSwitch a ponder search to normal search when the pondered move was played.chessIOStop a search in progress.chessIO(Set a spin option to a particular value.Bounds are validated. Make sure you don't set a value which is out of range.chessIO7Return the final position of the currently active game.chessIOAdd a Move to the game history.This function checks if the move is actually legal, and throws a  if it isn't.chessIOQuit the engine.chessIOthe game previously in progress None #$%&+8?    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``abcdefghijklmnopqrstuvwxyz{|}~     a!<        &chessIO-0.5.0.0-KVEwBqmSJFN65qt5nWYfUKGame.Chess.QuadBitboard Game.ChessGame.Chess.Polyglot.HashGame.Chess.PGNGame.Chess.Polyglot.BookGame.Chess.UCIGame.Chess.InternalGame.Chess.SANGame.Chess.Tree Paths_chessIOWord4W4 QuadBitboardQBBblackpbqnbkrqk BlackKing BlackQueen BlackRook BlackBishop BlackKnight BlackPawn WhiteKing WhiteQueen WhiteRook WhiteBishop WhiteKnight WhitePawnNoPieceinsufficientMaterialoccupiedpnrwhitepawnsknightsbishopsrooksqueenskingswPawnswKnightswBishopswRookswQueenswKingsbPawnsbKnightsbBishopsbRooksbQueensbKingsemptystandardsquare! setNibbletoStringmovemove'whiteKingsideCastlewhiteQueensideCastleblackKingsideCastleblackQueensideCastle enPassantwhitePromotionblackPromotionwhitePromotion'blackPromotion'$fShowQuadBitboard$fMonoidQuadBitboard$fSemigroupQuadBitboard$fIsStringQuadBitboard$fBinaryQuadBitboard$fVectorVectorQuadBitboard$fMVectorMVectorQuadBitboard$fUnboxQuadBitboard$fStorableQuadBitboard$fFiniteBitsWord4 $fEnumWord4$fBoundedWord4 $fBitsWord4 $fEqWord4$fIntegralWord4 $fIxWord4 $fNumWord4 $fOrdWord4 $fReadWord4 $fRealWord4 $fShowWord4$fEqQuadBitboardCastleKingside QueensidePlyPositioncolor halfMoveClock moveNumberSqA1B1C1D1E1F1G1H1A2B2C2D2E2F2G2H2A3B3C3D3E3F3G3H3A4B4C4D4E4F4G4H4A5B5C5D5E5F5G5H5A6B6C6D6E6F6G6H6A7B7C7D7E7F7G7H7A8B8C8D8E8F8G8H8ColorBlackWhite PieceTypePawnKnightBishopRookQueenKingstartpospieceAtopponentisDarkisLight repetitionsfromFENtoFEN fromPolyglot toPolyglotfromUCItoUCIdoPly unsafeDoPly legalPliesinCheckcastlingRightscanCastleKingsidecanCastleQueenside strictSAN relaxedSANfromSANtoSANvarToSAN unsafeToSAN positionTreepositionForest plyForestplyTree hashPositionpieceKey castleKeyepKeysturnKeyRAVOrderOutcomeWinDraw UndecidedGamePGNgameFromForest readPGNFilehPutPGN breadthFirst depthFirstpgnDocgameDocweightedForest$fPrettyOutcome$fEqPGN $fMonoidPGN$fSemigroupPGN $fEqPlyData $fShowPlyData $fEqOutcome $fShowOutcome PolyglotBook defaultBooktwicfromByteString toByteStringreadPolyglotFilewritePolyglotFilemakeBook bookForestbookPly bookPlies findPosition$fStorableBookEntry$fOrdBookEntry$fEqPolyglotBook $fEqBookEntry$fShowBookEntry SearchParamOptionCheckBoxComboBox SpinButtonOStringButton comboBoxValuecomboBoxValuesspinButtonValuespinButtonMinBoundspinButtonMaxBoundBounds UpperBound LowerBoundScore CentiPawnsMateInInfoPVDepthSelDepthElapsedMultiPVNodesNPSTBHitsHashFullCurrMoveCurrMoveNumberString UCIException IllegalMoveEnginenameauthoroptionsBestMove setPositionstartstart'isready searchmovespondertimeleft timeincrement movestogomovetimenodesdepthinfinite searchingsearch ponderhitstop getOptionsetOptionSpinButtonsetOptionStringcurrentPositionaddPly replacePlyquitquit'$fExceptionUCIException$fIsStringOption$fEqSearchParam$fShowSearchParam $fShowCommand $fEqOption $fShowOption$fEqInfo $fShowInfo $fEqBounds $fShowBounds $fEqScore $fOrdScore $fShowScore$fShowUCIException relativeToghc-prim GHC.TypesTrue DirectionNWWSWSENENESflagsqbbIsSquaretoIndexPiece capturing isCapturetoRFtoCoord occupiedByfoldBitsbitScanForwardbitScanReverse promoteTounpackshiftNshiftNNEshiftNEshiftENEshiftEshiftESEshiftSEshiftSSEshiftSshiftSSWshiftSWshiftWSWshiftWshiftWNWshiftNWshiftNNW unsafeDoPly' wPawnMoves bPawnMoves slideMovescanCastleKingside'canCastleQueenside'wKscmwQscmbKscmbQscm attackedBynotAFile notABFile notGHFilenotHFilerank1rank2rank3rank4rank5rank6rank7rank8epMaskcrwKscrwQscrwKecrwQecrbKscrbQscrbKecrbQe kingAttacks knightAttacks wPawnAttacks bPawnAttacks rookTargets bishopTargets queenTargets getRayTargets attackDirattackNWattackNattackNEattackEattackSEattackSattackSWattackW clearMasktestMaskbase GHC.MaybeNothingversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName