Copyright | (c) Michael Szvetits 2023 |
---|---|
License | BSD-3-Clause (see the file LICENSE) |
Maintainer | typedbyte@qualified.name |
Stability | stable |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Types and functions to create and analyze chess pieces.
Synopsis
- data PieceType'
- data PieceType t where
- data Piece t = Piece {}
- somePiece :: PieceType t -> Color -> Some Piece
- fromSome :: Some PieceType -> Color -> Some Piece
- equals :: PieceType a -> PieceType b -> Bool
- same :: Piece a -> Piece b -> Bool
- isOfType :: PieceType t -> Piece a -> Bool
- assume :: Alternative f => PieceType t -> Piece a -> f (Piece t)
Representing Pieces
data PieceType' Source #
Represents the piece types involved in a chess game on the type-level.
Instances
data PieceType t where Source #
Represents the piece types involved in a chess game on the term-level.
Pawn :: PieceType Pawn' | |
Knight :: PieceType Knight' | |
Bishop :: PieceType Bishop' | |
Rook :: PieceType Rook' | |
Queen :: PieceType Queen' | |
King :: PieceType King' |
Instances
TestEquality PieceType Source # | |
Defined in Chess.Piece | |
HasField "type'" (PlacedPiece t) (PieceType t) Source # | |
Defined in Chess.Board.PlacedPiece getField :: PlacedPiece t -> PieceType t # | |
Show (PieceType t) Source # | |
Eq (PieceType t) Source # | |
Ord (PieceType t) Source # | |
Represents a chess piece, which is a combination of its type and its color.
Instances
Show (Piece t) Source # | |
Eq (Piece t) Source # | |
Ord (Piece t) Source # | |
Show (Some Piece) Source # | |
Eq (Some Piece) Source # | |
Ord (Some Piece) Source # | |