h**      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.9.5.0  Safe-Inferred  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`  Safe-Inferred"%&'ijkuB:2*" A91)! @80( ?7/'>6.&=5-% <4,$ ;3+# WRQPONMLKTSXJIHGFEDCVUYZ[`_]\^lrqponmabcefhgstwvxyd|}~z{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"%&()*9 ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                  s   t {                                                                                          &chessIO-0.9.5.0-BaW1K7zZSNL8PJh51HhK3J Game.ChessGame.Chess.PolyglotGame.Chess.SANGame.Chess.PGNGame.Chess.ECOGame.Chess.TreeGame.Chess.UCIchessIOGame.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$fSemigroupQuadBitboard QuadBitboardblackoccupiedwhitepawnsknightsbishopsrooksqueenskingswPawnswKnightswBishopswRookswQueenswKingsbPawnsbKnightsbBishopsbRooksbQueensbKings wOrthogonals bOrthogonals wDiagonals bDiagonalstoStringWord4W4NoPiece WhitePawn WhiteKnight WhiteBishop WhiteRook WhiteQueen WhiteKing BlackPawn BlackKnight BlackBishop BlackRook BlackQueen BlackKingemptystandard! setNibblemove'whiteKingsideCastlewhiteQueensideCastleblackKingsideCastleblackQueensideCastle enPassantwhitePromotionblackPromotionwhitePromotion'blackPromotion' relativeToghc-prim GHC.TypesTrue&vector-0.13.1.0-3iwp0ZpVFXd2eoMdapVrKnData.Vector.Unboxed.BaseVectorV_PlyMVectorMV_PlyunPlyflagsqbbBitboardep testSquare capturing isCapture isPawnPush occupiedBybitScanForwardbitScanReverseunpackshiftNshiftNNshiftNNEshiftNEshiftENEshiftEshiftESEshiftSEshiftSSEshiftSshiftSSshiftSSWshiftSWshiftWSWshiftWshiftWNWshiftNWshiftNNW unsafeDoPly'forBits piecePliescanWhiteCastleKingsidecanBlackCastleKingsidecanWhiteCastleQueensidecanBlackCastleQueensidewKscmwQscmbKscmbQscm attackedByattackedByPawnnotAFile notABFile notGHFilenotHFilerank1rank2rank3rank4rank5rank6rank7rank8epMaskcrwKscrwQscrwKecrwQecrbKscrbQscrbKecrbQe kingAttacks knightAttacks wPawnAttacks bPawnAttacks orthogonaldiagonalaFilehFilea1h8h1a8 clearMasktestMaskParser toHashMap FileReaderfromPGN'openingcodevarpliesscid' spaceConsumerlexeme periodChar quoteChar backslashChar SearchMovesPonderTimeLeft TimeIncrement MovesToGoInfinitebase GHC.MaybeNothingversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir