h&*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`  Safe-Inferred"%&';>!chessIOlaw: singleton i x ! i = x where inRange (0,63) i && inRange (0,15) xchessIOMove a nibble. Note that this function, while convenient, isn't very fast as it needs to lookup the source nibble value.chessIO bitwise XOR6 ;Basic data types and functions related to the game of chess(c) Mario Lang, 2020BSD3mlang@blind.guru experimental Safe-Inferred"'(;> fchessIO active colorhchessIOnumber of the full moveschessIO=The starting position as given by the FEN string "rnbqkbnrpppppppp8888 PPPPPPPP/RNBQKBNR w KQkq - 0 1".xchessIO3Construct a position from Forsyth-Edwards-Notation.ychessIO/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.chessIO6.&=5-% <4,$ ;3+# JIHGFEDCRQPONMLKSTUVWXYZ[\]^_`abcdegfhijklrqponmstuvwxyz{|}~ijkuB:2*" A91)! @80( ?7/'>6.&=5-% <4,$ ;3+# B:2*" A91)! @80( ?7/'>6.&=5-% <4,$ ;3+# WRQPONMLKRQPONMLKTSXJIHGFEDCJIHGFEDCVUYZ[`_]\^lrqponmrqponmabcesfhgtwvxyd|}~z{  Safe-InferredStandard Algebraic Notation(c) Mario Lang, 2021BSD3mlang@blind.guru experimental Safe-Inferred"()*0Portable Game Notation(c) Mario Lang, 2021BSD3mlang@blind.guru experimental Safe-Inferred"%&()*8;>8$$ Safe-Inferred"%&(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.chessIO4Predicted Variations. Return the most popular game.  Safe-Inferred"%&)*;>jchessIOEncyclopedia of Chess OpeningschessIOA Chess OpeningchessIO$Parse an ECO database in .pgn formatchessIO$Parse an ECO database in .eco formatchessIOConvert a PGN database to ECO assuming the ECO, Opening and Variation tags are being used to identify chess openings.chessIO2A parser for opening databases in SCID .eco formatchessIO.Retrieve the opening for a particular position Encyclopedia of Chess Openings(c) Mario Lang, 2021BSD3mlang@blind.guru experimental Safe-Inferred+ Safe-InferredUniversal Chess Interface(c) Mario Lang, 2021BSD3mlang@blind.guru experimental Safe-Inferred"%&'(}chessIO+restrict search to the specified moves onlychessIO!start searching in pondering modechessIO(time (in milliseconds) left on the clockchessIO'time increment per move in millisecondschessIO(number of moves to the next time controlchessIO search until  gets calledchessIO8Set the starting position and plies of the current game.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.  Safe-Inferred !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn o p q r s t u v w x y z { | } ~                                                                                                        r   s z                                                                                                                 &chessIO-0.9.3.1-FhorHdlbYNXK07vrmB8ltu Game.ChessGame.Chess.PolyglotGame.Chess.SANGame.Chess.PGNGame.Chess.ECOGame.Chess.TreeGame.Chess.UCIGame.Chess.Internal.Square Game.Chess.Internal.QuadBitboardGame.Chess.InternalGame.Chess.Polyglot.HashGame.Chess.Internal.ECO Paths_chessIOSquareFileRankH8G8F8E8D8C8B8A8H7G7F7E7D7C7B7A7H6G6F6E6D6C6B6A6H5G5F5E5D5C5B5A5H4G4F4E4D4C4B4A4H3G3F3E3D3C3B3A3H2G2F2E2D2C2B2A2H1G1F1E1D1C1B1A1FileHFileGFileFFileEFileDFileCFileBFileARank8Rank7Rank6Rank5Rank4Rank3Rank2Rank1unRankmkRankunFilemkFilerankfilerankFilemapRankmapFilefileCharrankChartoCoordisDarkisLightCastleKingside QueensidePlyPositioncolor halfMoveClock moveNumberColorBlackWhite PieceTypeKingQueenRookBishopKnightPawnstartpospieceAtopponent repetitionsinsufficientMaterialfromFENtoFENmove promoteTo plySource plyTarget plyPromotionfromUCItoUCIdoPly unsafeDoPly legalPlies legalPlies'inCheckcastlingRightsenPassantSquarecanCastleKingsidecanCastleQueenside hashPositionSANToken strictSAN relaxedSANfromSANtoSANvarToSAN unsafeToSAN$fSANTokenWord8$fSANTokenChar $fEqSANStatus$fReadSANStatus$fShowSANStatus$fEqFrom $fShowFrom AnnotatedAnn _annPrefixNAG_annPly _annSuffixNAG$fApplicativeAnnotated $fEqAnnotated$fFunctorAnnotated$fGenericAnnotated$fLiftBoxedRepAnnotated$fShowAnnotatedOutcomeWinDraw UndecidedannPly annPrefixNAG annSuffixNAG$fHashableAnnotated$fHashableOutcome $fEqOutcome$fGenericOutcome$fLiftBoxedRepOutcome $fShowOutcomeGameCG_cgTags _cgForest _cgOutcome_Win_Draw _Undecided$fHashableGame$fEqGame $fGenericGame $fShowGamePGNcgForest cgOutcomecgTags$fEqPGN $fMonoidPGN$fSemigroupPGNRAVOrdergameFromForest pgnForest readPGNFilehPutPGNpgn breadthFirst depthFirstpgnDocgameDocweightedForest$fPrettyOutcome $fOrdOutcome $fWrappedPGN$fRewrappedPGNt BookEntryBE_beKey_bePly _beWeight_beLearn$fHashableBookEntry $fEqBookEntry$fFunctorBookEntry$fGenericBookEntry$fShowBookEntry PolyglotBookbeKeybeLearnbePlybeWeight defaultBooktwicfromByteString toByteStringreadPolyglotFilewritePolyglotFiletoPGNmakeBook bookForestbookPly bookPlies variations findPosition$fStorableBookEntry$fOrdBookEntry$fMonoidPolyglotBook$fSemigroupPolyglotBook$fEqPolyglotBook$fHashablePolyglotBookECOOpeningCOcoCodecoName coVariationcoPliesecoPgnscidEcoembedECOtoListfromListfromPGNscidreadECOPGNFilereadSCIDECOFilelookup defaultECO positionTreepositionForest plyForestplyTree 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$fShowUCIExceptionSqunSquaremkSq singleton$fSemigroupQuadBitboardWord4W4 QuadBitboardblack BlackKing BlackQueen BlackRook BlackBishop BlackKnight BlackPawn WhiteKing WhiteQueen WhiteRook WhiteBishop WhiteKnight WhitePawnNoPieceoccupiedwhitepawnsknightsbishopsrooksqueenskingswPawnswKnightswBishopswRookswQueenswKingsbPawnsbKnightsbBishopsbRooksbQueensbKingsemptystandard! setNibbletoStringmove'whiteKingsideCastlewhiteQueensideCastleblackKingsideCastleblackQueensideCastle enPassantwhitePromotionblackPromotionwhitePromotion'blackPromotion' relativeToghc-prim GHC.TypesTrue&vector-0.13.0.0-7U8pFThXyYFEKl1vrDAyiEData.Vector.Unboxed.BaseVectorV_PlyMVectorMV_PlyunPlyflagsqbbBitboardep testSquare capturing isCapture isPawnPush occupiedBybitScanForwardbitScanReverseunpackshiftNshiftNNshiftNNEshiftNEshiftENEshiftEshiftESEshiftSEshiftSSEshiftSshiftSSshiftSSWshiftSWshiftWSWshiftWshiftWNWshiftNWshiftNNW unsafeDoPly'forBits piecePliescanWhiteCastleKingsidecanBlackCastleKingsidecanWhiteCastleQueensidecanBlackCastleQueensidewKscmwQscmbKscmbQscm attackedByattackedByPawnnotAFile notABFile notGHFilenotHFilerank1rank2rank3rank4rank5rank6rank7rank8epMaskcrwKscrwQscrwKecrwQecrbKscrbQscrbKecrbQe kingAttacks knightAttacks wPawnAttacks bPawnAttacks rookTargets bishopTargets queenTargets rayTargetsrayNWrayNrayNErayEraySEraySraySWrayW attackDirattackNWattackNattackNEattackEattackSEattackSattackSWattackW clearMasktestMaskParser toHashMap FileReaderfromPGN'openingcodevarpliesscid' spaceConsumerlexeme periodChar quoteChar backslashChar SearchMovesPonderTimeLeft TimeIncrement MovesToGoInfinitebase GHC.MaybeNothingversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir