packages feed

bishbosh 0.0.0.3 → 0.0.0.4

raw patch · 15 files changed

+47/−47 lines, 15 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Classes.Eq criterionValue, GHC.Classes.Eq weightedMean) => GHC.Classes.Eq (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
- BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Show.Show criterionValue, GHC.Show.Show weightedMean) => GHC.Show.Show (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
- BishBosh.Cartesian.Coordinates: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Cartesian.Coordinates.Coordinates x y)
- BishBosh.Component.PieceSquareArray: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
- BishBosh.Component.PieceSquareArray: instance (GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
- BishBosh.Component.QualifiedMove: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Component.QualifiedMove.QualifiedMove x y)
- BishBosh.Component.Zobrist: instance (GHC.Arr.Ix x, GHC.Show.Show y, GHC.Show.Show x, GHC.Show.Show positionHash, GHC.Classes.Ord y, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Component.Zobrist.Zobrist x y positionHash)
- BishBosh.ContextualNotation.PGN: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.ContextualNotation.PGN.PGN x y)
- BishBosh.ContextualNotation.QualifiedMoveForest: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.ContextualNotation.QualifiedMoveForest.QualifiedMoveForest x y)
- BishBosh.ContextualNotation.StandardAlgebraic: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.ContextualNotation.StandardAlgebraic.StandardAlgebraic x y)
- BishBosh.Data.Exception: instance GHC.Exception.Exception BishBosh.Data.Exception.Exception
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Classes.Eq criterionValue, GHC.Classes.Eq weightedMean, GHC.Classes.Eq positionHash, GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.PositionHashQuantifiedGameTree x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show criterionValue, GHC.Show.Show weightedMean, GHC.Show.Show positionHash) => GHC.Show.Show (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.QuantifiedGame: instance (GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
- BishBosh.Evaluation.QuantifiedGame: instance (GHC.Show.Show weightedMean, GHC.Show.Show criterionValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
- BishBosh.Input.EvaluationOptions: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq rankValue, GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
- BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue, GHC.Show.Show criterionWeight, GHC.Show.Show rankValue) => GHC.Show.Show (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
- BishBosh.Input.IOOptions: instance (GHC.Classes.Eq column, GHC.Classes.Eq row) => GHC.Classes.Eq (BishBosh.Input.IOOptions.IOOptions row column)
- BishBosh.Input.NativeUIOptions: instance (GHC.Classes.Eq column, GHC.Classes.Eq row) => GHC.Classes.Eq (BishBosh.Input.NativeUIOptions.NativeUIOptions row column)
- BishBosh.Input.Options: instance (GHC.Classes.Eq row, GHC.Classes.Eq column, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
- BishBosh.Input.Options: instance (GHC.Show.Show row, GHC.Show.Show column, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
- BishBosh.Input.PieceSquareTable: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
- BishBosh.Input.PieceSquareTable: instance (GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
- BishBosh.Model.GameTree: instance (GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Model.GameTree.GameTree x y)
- BishBosh.Notation.Coordinate: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Notation.Coordinate.Coordinate x y)
- BishBosh.Notation.ICCFNumeric: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Notation.ICCFNumeric.ICCFNumeric x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Ord y, GHC.Classes.Ord x) => GHC.Classes.Ord (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.State.MaybePieceByCoordinates: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
- BishBosh.State.MaybePieceByCoordinates: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Ord (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
+ BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
+ BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
+ BishBosh.Cartesian.Coordinates: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Cartesian.Coordinates.Coordinates x y)
+ BishBosh.Component.PieceSquareArray: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
+ BishBosh.Component.PieceSquareArray: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
+ BishBosh.Component.QualifiedMove: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Component.QualifiedMove.QualifiedMove x y)
+ BishBosh.Component.Zobrist: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord y, GHC.Show.Show positionHash, GHC.Show.Show x, GHC.Show.Show y, GHC.Arr.Ix x) => GHC.Show.Show (BishBosh.Component.Zobrist.Zobrist x y positionHash)
+ BishBosh.ContextualNotation.PGN: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.ContextualNotation.PGN.PGN x y)
+ BishBosh.ContextualNotation.QualifiedMoveForest: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.ContextualNotation.QualifiedMoveForest.QualifiedMoveForest x y)
+ BishBosh.ContextualNotation.StandardAlgebraic: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.ContextualNotation.StandardAlgebraic.StandardAlgebraic x y)
+ BishBosh.Data.Exception: instance GHC.Exception.Type.Exception BishBosh.Data.Exception.Exception
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.PositionHashQuantifiedGameTree x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show positionHash, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.QuantifiedGame: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
+ BishBosh.Evaluation.QuantifiedGame: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
+ BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
+ BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
+ BishBosh.Input.IOOptions: instance (GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.IOOptions.IOOptions row column)
+ BishBosh.Input.NativeUIOptions: instance (GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.NativeUIOptions.NativeUIOptions row column)
+ BishBosh.Input.Options: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue, GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
+ BishBosh.Input.Options: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue, GHC.Show.Show column, GHC.Show.Show row) => GHC.Show.Show (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
+ BishBosh.Input.PieceSquareTable: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
+ BishBosh.Input.PieceSquareTable: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
+ BishBosh.Model.GameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.Model.GameTree.GameTree x y)
+ BishBosh.Notation.Coordinate: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Notation.Coordinate.Coordinate x y)
+ BishBosh.Notation.ICCFNumeric: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Notation.ICCFNumeric.ICCFNumeric x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Ord (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.State.MaybePieceByCoordinates: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
+ BishBosh.State.MaybePieceByCoordinates: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Ord (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
- BishBosh.Attribute.MoveType: nPiecesMutator :: Enum nPieces => MoveType -> (nPieces -> nPieces)
+ BishBosh.Attribute.MoveType: nPiecesMutator :: Enum nPieces => MoveType -> nPieces -> nPieces
- BishBosh.Component.PieceSquareArray: type FindPieceSquareValue x y pieceSquareValue = LogicalColour The piece's logical colour. -> Rank The piece's rank. -> Coordinates x y The piece's location. -> pieceSquareValue
+ BishBosh.Component.PieceSquareArray: type FindPieceSquareValue x y pieceSquareValue = LogicalColour " The piece's logical colour." -> Rank " The piece's rank." -> Coordinates x y " The piece's location." -> pieceSquareValue
- BishBosh.Notation.MoveNotation: showNotation :: (ShowNotation a) => MoveNotation -> a -> String
+ BishBosh.Notation.MoveNotation: showNotation :: ShowNotation a => MoveNotation -> a -> String
- BishBosh.UI.Command: RollBack :: (Maybe NMoves) -> Command x y
+ BishBosh.UI.Command: RollBack :: Maybe NMoves -> Command x y

Files

README.markdown view
@@ -21,7 +21,7 @@  ## Bug-reporting -Bug-reports should be emailed to <bishbosh@functionalley.eu>.+Bug-reports should be emailed to <bishbosh@functionalley.com>.  ## Testing 
bishbosh.cabal view
@@ -14,7 +14,7 @@ -- along with BishBosh.  If not, see <http://www.gnu.org/licenses/>.  Name:		bishbosh-Version:	0.0.0.3+Version:	0.0.0.4 Cabal-version:	>= 1.10 Copyright:	(C) 2018 Dr. Alistair Ward License:	GPL@@ -25,10 +25,10 @@ Build-type:	Simple Description:	A chess-game which can be rendered in a terminal (emulator) in raw ASCII, or used as an engine by xboard. Category:	Game-Tested-with:	GHC == 8.0, GHC == 8.2, GHC == 8.4-Homepage:	https://functionalley.eu/BishBosh/bishbosh.html-Maintainer:	mailto:bishbosh@functionalley.eu-Bug-reports:	mailto:bishbosh@functionalley.eu+Tested-with:	GHC == 8.0, GHC == 8.2, GHC == 8.4, GHC == 8.6+Homepage:	https://functionalley.com/BishBosh/bishbosh.html+Maintainer:	mailto:bishbosh@functionalley.com+Bug-reports:	mailto:bishbosh@functionalley.com  -- Files which can be located by the application using 'Paths_bishbosh.datadir'. Data-files:@@ -217,7 +217,7 @@             GHC-prof-options:	-fprof-auto -fprof-cafs              if impl(ghc >= 8.0)-                GHC-options:	-j -Wredundant-constraints+                GHC-options:	-Wredundant-constraints         else             GHC-prof-options:	-auto-all -caf-all @@ -283,7 +283,7 @@             GHC-prof-options:	-fprof-auto -fprof-cafs -rtsopts -with-rtsopts=-H100M              if impl(ghc >= 8.0)-                GHC-options:	-j -Wredundant-constraints+                GHC-options:	-Wredundant-constraints         else             GHC-prof-options:	-auto-all -caf-all @@ -417,7 +417,7 @@             GHC-prof-options:	-fprof-auto -fprof-cafs -rtsopts -with-rtsopts=-H100M              if impl(ghc >= 8.0)-                GHC-options:	-j -Wredundant-constraints+                GHC-options:	-Wredundant-constraints         else             GHC-prof-options:	-auto-all -caf-all 
bishbosh.spec view
@@ -24,13 +24,13 @@  Summary:	BishBosh is a chess-game. Name:		bishbosh-Version:	0.0.0.3+Version:	0.0.0.4 Release:	1 License:	GPLv3 # From '/usr/share/doc/packages/rpm/GROUPS'. Group:		Amusements/Games-# Source0:	https://functionalley.eu/Downloads/sdist/%tarBall-URL:		https://functionalley.eu/BishBosh/%name.html+# Source0:	https://functionalley.com/Downloads/sdist/%tarBall+URL:		https://functionalley.com/BishBosh/%name.html Prefix:		/usr BuildRequires:	haskell-platform @@ -72,6 +72,6 @@ %attr(0644, root, root) %doc	%_mandir/man5/%name.5.gz  %changelog-* Thu Jul 04 2013	Alistair Ward	<bishbosh@functionalley.eu>	0.0.0.1-1+* Thu Jul 04 2013	Alistair Ward	<bishbosh@functionalley.com>	0.0.0.1-1 First cut. 
changelog.markdown view
@@ -1,4 +1,4 @@-# 2018-01-01 Dr. Alistair Ward <bishbosh@functionalley.eu>+# 2018-01-01 Dr. Alistair Ward <bishbosh@functionalley.com>  ## 0.0.0.1 * First version of the package.@@ -8,3 +8,6 @@  ## 0.0.0.3 Added **Paths_bishbosh** to **Other-modules** section of cabal file.++## 0.0.0.4+Changed references to author's domain-name.
@@ -1,11 +1,11 @@ Author:-	Dr. Alistair Ward <bishbosh@functionalley.eu>.+	Dr. Alistair Ward <bishbosh@functionalley.com>.  Copyright: 	Copyright (C) 2018 Dr. Alistair Ward. All Rights Reserved.  Home-page:-	https://functionalley.eu/BishBosh/bishbosh.html+	https://functionalley.com/BishBosh/bishbosh.html  License: 	GNU GENERAL PUBLIC LICENSE Version 3; see '/usr/share/common-licenses/GPL-3' or '/usr/share/doc/licenses/gpl-3.0.txt' where available, or the local packaged file 'LICENSE'.
man/man1/bishbosh.1 view
@@ -164,7 +164,7 @@ .IP \(bu Performance is uncompetitive with imperative implementions of similar algorithms. .SS "REPORTING BUGS"-Report bugs to "\fBbishbosh@functionalley.eu\fR".+Report bugs to "\fBbishbosh@functionalley.com\fR". .SH COPYRIGHT Copyright \(co 2018 Dr. Alistair Ward .PP@@ -175,7 +175,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see \fBhttps://www.gnu.org/licenses/\fR . .SH "SEE ALSO" .IP \(bu-Home-page: \fBhttps://functionalley.eu/BishBosh/bishbosh.html\fR+Home-page: \fBhttps://functionalley.com/BishBosh/bishbosh.html\fR .IP \(bu .B https://hackage.haskell.org/package/bishbosh .IP \(bu
src-lib/BishBosh/Attribute/MoveType.hs view
@@ -156,7 +156,7 @@ 	-> Maybe Attribute.Rank.Rank	-- ^ The /rank/ to which a @Pawn@ was just promoted. 	-> Maybe MoveType		-- ^ Maybe the required /move-type/. mkMaybeNormalMoveType maybeTakenRank maybePromotionRank-	| Data.Maybe.maybe True {-nothing taken-} (/= Attribute.Rank.King) maybeTakenRank+	| maybeTakenRank /= Just Attribute.Rank.King 	, Data.Maybe.maybe True {-nothing promoted-} ( 		`elem` Attribute.Rank.promotionProspects 	) maybePromotionRank	= Just $ Normal maybeTakenRank maybePromotionRank@@ -168,9 +168,7 @@ 	-> Maybe Attribute.Rank.Rank	-- ^ The /rank/ to which a @Pawn@ is to be promoted. 	-> MoveType mkNormalMoveType maybeTakenRank maybePromotionRank	= Control.Exception.assert (-	Data.Maybe.maybe True {-nothing taken-} (-		/= Attribute.Rank.King-	) maybeTakenRank && Data.Maybe.maybe True {-nothing promoted-} (+	maybeTakenRank /= Just Attribute.Rank.King && Data.Maybe.maybe True {-nothing promoted-} ( 		`elem` Attribute.Rank.promotionProspects 	) maybePromotionRank  ) $ Normal maybeTakenRank maybePromotionRank
src-lib/BishBosh/ContextualNotation/StandardAlgebraic.hs view
@@ -473,7 +473,7 @@ 										Component.QualifiedMove.mkQualifiedMove (Component.Move.mkMove source destination) . Attribute.MoveType.mkNormalMoveType Nothing {-capture-} 									) `fmap` Control.Applicative.optional promotionParser 								 ) . Data.List.find (-									Data.Maybe.maybe False {-no piece-} (== piece) . getMaybePiece+									(== Just piece) . getMaybePiece 								 ) . Data.Maybe.catMaybes . take 2 {-maximum Pawn-advance-} . tail {-drop the original-} $ iterate ( 									>>= Cartesian.Coordinates.maybeRetreat nextLogicalColour 								 ) $ Just destination
src-lib/BishBosh/Model/Game.hs view
@@ -494,7 +494,7 @@ 			getAvailableQualifiedMovesByLogicalColour	= Data.Map.fromAscList [ 				(logicalColour, mkAvailableQualifiedMovesFor logicalColour game) | 					logicalColour	<- Attribute.LogicalColour.range,-					Data.Maybe.maybe True (/= logicalColour) $ getMaybeChecked game	-- Define the available qualified moves for unchecked players only.+					getMaybeChecked game /= Just logicalColour	-- Define the available qualified moves for unchecked players only. 			], -- List-comprehension. 			getMaybeTerminationReason			= inferMaybeTerminationReason game 		}@@ -677,7 +677,7 @@ 						(pawnCoordinates, oppositePiece) | 							let oppositePiece	= Component.Piece.mkPiece opponentsLogicalColour sourceRank, 							pawnCoordinates	<- Cartesian.Coordinates.getAdjacents destination,-							Data.Maybe.maybe False (== oppositePiece) . State.MaybePieceByCoordinates.dereference pawnCoordinates $ State.Board.getMaybePieceByCoordinates board	-- Find any opposing Pawn which can capture En-passant.+							State.MaybePieceByCoordinates.dereference pawnCoordinates (State.Board.getMaybePieceByCoordinates board) == Just oppositePiece 	-- Find any opposing Pawn which can capture En-passant. 					] {-list-comprehension-} 					else id 			 ) $ kingsByCoordinates {-moves available to either King may be constrained or liberated, even if misaligned with move-endpoints-} ++ [@@ -704,9 +704,9 @@ 							(blockingCoordinates, blockingPiece)	<- Data.Maybe.maybeToList $ ( 								\pair@(coordinates, _) -> if coordinates /= destination 									then Just pair-									else {-blocker is destination-} if Data.Maybe.maybe False (== direction) $ Cartesian.Vector.toMaybeDirection (+									else {-blocker is destination-} if Cartesian.Vector.toMaybeDirection ( 										Cartesian.Vector.measureDistance kingsCoordinates source	:: Cartesian.Vector.VectorInt-									)+									) == Just direction 										then Nothing 										else findBlockingPieceFrom coordinates	-- Look through the destination to the previous blocker; which might be the source. 							) =<< findBlockingPieceFrom kingsCoordinates@@ -731,7 +731,7 @@ 					destination'	<- Component.Piece.findAttackDestinations source' piece', 					State.MaybePieceByCoordinates.isVacant destination' maybePieceByCoordinates', 					uncurry (&&) . (-						Data.Maybe.maybe False {-unoccupied-} (== Property.Opposable.getOpposite piece') . (+						(== Just (Property.Opposable.getOpposite piece')) . ( 							`State.MaybePieceByCoordinates.dereference` maybePieceByCoordinates' 						) &&& (== move) . Component.Move.mkMove (Cartesian.Coordinates.advance logicalColour destination') 					) $ Cartesian.Coordinates.retreat logicalColour destination',	-- Did an opposing Pawn just double-advance to the expected position ?@@ -742,7 +742,7 @@ 					Attribute.MoveType.mkNormalMoveType maybeTakenRank maybePromotionRank 				) | 					(destination', maybeTakenRank)	<- State.MaybePieceByCoordinates.listDestinationsFor source' piece' maybePieceByCoordinates',-					Data.Maybe.maybe True {-unoccupied-} (/= Attribute.Rank.King) maybeTakenRank,	-- This move can never be made; the option will either be immediately removed or check-mate declared.+					maybeTakenRank /= Just Attribute.Rank.King,	-- This move can never be made; the option will either be immediately removed or check-mate declared. 					isSafeDestination destination', 					maybePromotionRank		<- listMaybePromotionRanks destination' piece' 			 ] {-list-comprehension-} of@@ -927,7 +927,7 @@ 									State.MaybePieceByCoordinates.isOccupied destination maybePieceByCoordinates, 									showString "taking a '" $ shows opponentsPawn "' en-passant, requires a move to a vacant square" 								), (-									Data.Maybe.maybe True {-unoccupied-} (/= opponentsPawn) $ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates,+									State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates /= Just opponentsPawn, 									shows "en-passant" . showString " requires a '" $ shows opponentsPawn "' to be taken" 								), ( 									Data.Maybe.maybe True {-zero previous turns-} (@@ -1032,7 +1032,7 @@ 							] -- List-comprehension. 						) ++ [ 							(-								Data.Maybe.maybe False {-not in check-} (== sourceLogicalColour) maybeChecked,+								maybeChecked == Just sourceLogicalColour, 								"it can't castle out of check" 							), ( 								any (@@ -1046,7 +1046,7 @@ 					if Component.Piece.isKing sourcePiece 						then showString "it" 						else showString "your '" . shows (Component.Piece.mkKing sourceLogicalColour) . showChar '\''-				) $ if Data.Maybe.maybe False (== sourceLogicalColour) maybeChecked+				) $ if maybeChecked == Just sourceLogicalColour  					then ( 						State.Board.isKingChecked sourceLogicalColour $ State.Board.movePiece move (Just moveType) board,	-- CAVEAT: don't perform an unvalidated move at the Game-level. 						" remains checked"@@ -1193,7 +1193,7 @@ 				getAvailableQualifiedMovesByLogicalColour	= Data.Map.fromAscList [ 					(logicalColour, mkAvailableQualifiedMovesFor logicalColour game') | 						logicalColour	<- Attribute.LogicalColour.range,-						Data.Maybe.maybe True (/= logicalColour) maybeChecked'+						maybeChecked' /= Just logicalColour 				], -- List-comprehension. 				getMaybeTerminationReason	= Nothing 			}@@ -1222,7 +1222,7 @@ 	getBoard	= board, 	getMaybeChecked	= maybeChecked }-	| Data.Maybe.maybe False (== logicalColour) maybeChecked	= let+	| maybeChecked == Just logicalColour = let 		kingsCoordinates	= State.CoordinatesByRankByLogicalColour.getKingsCoordinates logicalColour coordinatesByRankByLogicalColour 	in [ 		Component.QualifiedMove.mkQualifiedMove move moveType |@@ -1245,7 +1245,7 @@ 							) Attribute.MoveType.enPassant | 								Component.Move.isPawnDoubleAdvance opponentsLogicalColour lastMove, 								source	<- Cartesian.Coordinates.getAdjacents lastDestination,-								Data.Maybe.maybe False {-unoccupied-} (== pawn) $ State.MaybePieceByCoordinates.dereference source maybePieceByCoordinates+								State.MaybePieceByCoordinates.dereference source maybePieceByCoordinates == Just pawn 						] -- List-comprehension. 					) . Component.QualifiedMove.getMove . Component.Turn.getQualifiedMove 				) $ maybeLastTurn game	-- The King is checked by a Pawn, which must also have been the last piece to move.@@ -1283,7 +1283,7 @@ 				destination	<- Component.Piece.findAttackDestinations source pawn, 				State.MaybePieceByCoordinates.isVacant destination maybePieceByCoordinates, 				let opponentsCoordinates	= Cartesian.Coordinates.retreat logicalColour destination,-				Data.Maybe.maybe False {-unoccupied-} (== Property.Opposable.getOpposite pawn) $ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates,+				State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates == Just (Property.Opposable.getOpposite pawn), 				Data.Maybe.maybe False {-zero previous turns-} ( 					uncurry (&&) . ( 						(== opponentsCoordinates) . Component.Move.getDestination &&& (@@ -1297,7 +1297,7 @@ 			) $ Attribute.MoveType.mkNormalMoveType maybeTakenRank maybePromotionRank | 				(source, piece)			<- State.CoordinatesByRankByLogicalColour.findPiecesOfColour logicalColour coordinatesByRankByLogicalColour, 				(destination, maybeTakenRank)	<- State.MaybePieceByCoordinates.listDestinationsFor source piece maybePieceByCoordinates,-				Data.Maybe.maybe True {-unoccupied-} (/= Attribute.Rank.King) maybeTakenRank,	-- This move can never be made; the option will either be immediately removed or check-mate declared.+				maybeTakenRank /= Just Attribute.Rank.King,	-- This move can never be made; the option will either be immediately removed or check-mate declared. 				maybePromotionRank		<- listMaybePromotionRanks destination piece 		] -- List-comprehension. 	)
src-lib/BishBosh/Model/GameTree.hs view
@@ -216,7 +216,7 @@ 	=> GameTree x y 	-> [Component.Turn.Turn x y]	-- ^ The data against which, nodes from the tree should be matched. 	-> Maybe [Model.Game.Game x y]	-- ^ Returns 'Nothing' on match-failure.-traceRoute MkGameTree { deconstruct = bareGameTree }	= Data.RoseTree.traceRoute (\turn -> Data.Maybe.maybe False (== turn) . Model.Game.maybeLastTurn) bareGameTree+traceRoute MkGameTree { deconstruct = bareGameTree }	= Data.RoseTree.traceRoute (\turn -> (== Just turn) . Model.Game.maybeLastTurn) bareGameTree  -- | Focus the underlying type. type MoveFrequency x y	= Model.MoveFrequency.MoveFrequency (Component.Move.Move x y)
src-lib/BishBosh/State/Board.hs view
@@ -425,11 +425,11 @@ 				) maybePromotionRank, 			getNPawnsByFileByLogicalColour	= if Component.Piece.isPawn sourcePiece && ( 				Cartesian.Coordinates.getX source /= Cartesian.Coordinates.getX destination {-includes En-passant-} || Attribute.MoveType.isPromotion moveType-			) || Data.Maybe.maybe False (== Attribute.Rank.Pawn) (Attribute.MoveType.getMaybeExplicitlyTakenRank moveType)+			) || Attribute.MoveType.getMaybeExplicitlyTakenRank moveType == Just Attribute.Rank.Pawn 				then State.CoordinatesByRankByLogicalColour.countPawnsByFileByLogicalColour coordinatesByRankByLogicalColour' 				else getNPawnsByFileByLogicalColour board, 			getNPieces	= Attribute.MoveType.nPiecesMutator moveType nPieces,-			getPassedPawnCoordinatesByLogicalColour	= if Component.Piece.isPawn sourcePiece {-includes En-passant & promotion-} || Data.Maybe.maybe False (== Attribute.Rank.Pawn) (Attribute.MoveType.getMaybeExplicitlyTakenRank moveType)+			getPassedPawnCoordinatesByLogicalColour	= if Component.Piece.isPawn sourcePiece {-includes En-passant & promotion-} || Attribute.MoveType.getMaybeExplicitlyTakenRank moveType == Just Attribute.Rank.Pawn 				then State.CoordinatesByRankByLogicalColour.findPassedPawnCoordinatesByLogicalColour coordinatesByRankByLogicalColour' 				else getPassedPawnCoordinatesByLogicalColour board 		}
src-lib/BishBosh/State/EnPassantAbscissa.hs view
@@ -43,7 +43,6 @@ import qualified	BishBosh.State.MaybePieceByCoordinates	as State.MaybePieceByCoordinates import qualified	Control.DeepSeq import qualified	Data.Array.IArray-import qualified	Data.Maybe  -- | Defines the file on which an En-passant option currently exists. newtype EnPassantAbscissa x	= MkEnPassantAbscissa {@@ -71,8 +70,8 @@ 	| Component.Turn.isPawnDoubleAdvance (Property.Opposable.getOpposite nextLogicalColour) lastTurn 	, let destination	= Component.Move.getDestination . Component.QualifiedMove.getMove $ Component.Turn.getQualifiedMove lastTurn 	, any (-		Data.Maybe.maybe False {-unoccupied-} (-			== Component.Piece.mkPawn nextLogicalColour+		(+			== Just (Component.Piece.mkPawn nextLogicalColour) 		) . ( 			`State.MaybePieceByCoordinates.dereference` maybePieceByCoordinates 		)
src-lib/BishBosh/State/MaybePieceByCoordinates.hs view
@@ -365,7 +365,7 @@ 	-> [(Cartesian.Coordinates.Coordinates x y, Maybe Attribute.Rank.Rank)]	-- ^ The destination & the rank of any piece taken. {-# SPECIALISE listDestinationsFor :: Cartesian.Coordinates.Coordinates T.X T.Y -> Component.Piece.Piece -> MaybePieceByCoordinates T.X T.Y -> [(Cartesian.Coordinates.Coordinates T.X T.Y, Maybe Attribute.Rank.Rank)] #-} listDestinationsFor source piece maybePieceByCoordinates@MkMaybePieceByCoordinates { deconstruct = byCoordinates }	= Control.Exception.assert (-	Data.Maybe.maybe False (== piece) $ byCoordinates ! source+	byCoordinates ! source == Just piece  ) $ if Component.Piece.getRank piece `elem` Attribute.Rank.fixedAttackRange 	then {-P,N,K-} let 		findDestinations predicate	= [@@ -555,7 +555,7 @@ 	-> MaybePieceByCoordinates x y 	-> [Cartesian.Coordinates.Coordinates x y] findProximateKnights logicalColour destination MkMaybePieceByCoordinates { deconstruct = byCoordinates }	= filter (-	Data.Maybe.maybe False (== knight) . (byCoordinates !)+	(== Just knight) . (byCoordinates !)  ) $ Component.Piece.findAttackDestinations destination knight where 	knight	= Component.Piece.mkKnight logicalColour 
src-test/BishBosh/Test/HUnit/Input/Options.hs view
@@ -81,7 +81,7 @@ 			\path -> do 				optionsList	<- HXT.runX {-which returns a list-} $ HXT.setTraceLevel maximumTraceLevel >>> HXT.xunpickleDocument HXT.xpickle inputSysConfig path -				Data.Maybe.maybe False (== head optionsList) (+				(== Just (head optionsList)) ( 					(HXT.unpickleDoc HXT.xpickle . HXT.pickleDoc HXT.xpickle) =<< Data.Maybe.listToMaybe ( 						optionsList :: [ 							Input.Options.Options T.Y {-column-} T.CriterionWeight T.PieceSquareValue T.RankValue T.X {-row-} T.X T.Y
src-test/BishBosh/Test/QuickCheck/Model/GameTree.hs view
@@ -56,7 +56,7 @@ 		f :: Test.QuickCheck.Model.Game.Game -> Test.QuickCheck.Property 		f = Test.QuickCheck.label "GameTree.prop_traceRoute" . ( 			\turns -> Data.Maybe.maybe False (-				Data.Maybe.maybe False (== turns) . mapM Model.Game.maybeLastTurn+				(== Just turns) . mapM Model.Game.maybeLastTurn 			) $ Model.GameTree.traceRoute Data.Default.def turns 		 ) . Model.Game.listTurnsChronologically 	in Test.QuickCheck.quickCheckWithResult Test.QuickCheck.stdArgs { Test.QuickCheck.maxSuccess = 64 } f