chessIO-0.9.3.1: Basic chess library
Copyright(c) Mario Lang 2021
LicenseBSD3
Maintainermlang@blind.guru
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

Game.Chess.ECO

Description

Types and functions to name chess positions according to the opening used.

Two commonly used file formats for opening classification are supported.

Synopsis

Data types

data ECO Source #

Encyclopedia of Chess Openings

Instances

Instances details
Monoid ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

mempty :: ECO #

mappend :: ECO -> ECO -> ECO #

mconcat :: [ECO] -> ECO #

Semigroup ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

(<>) :: ECO -> ECO -> ECO #

sconcat :: NonEmpty ECO -> ECO #

stimes :: Integral b => b -> ECO -> ECO #

Binary ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

put :: ECO -> Put #

get :: Get ECO #

putList :: [ECO] -> Put #

NFData ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

rnf :: ECO -> () #

Eq ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

(==) :: ECO -> ECO -> Bool #

(/=) :: ECO -> ECO -> Bool #

Hashable ECO Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

hashWithSalt :: Int -> ECO -> Int #

hash :: ECO -> Int #

data Opening Source #

A Chess Opening

Constructors

CO 

Fields

Instances

Instances details
Generic Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Associated Types

type Rep Opening :: Type -> Type #

Methods

from :: Opening -> Rep Opening x #

to :: Rep Opening x -> Opening #

Show Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Binary Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

put :: Opening -> Put #

get :: Get Opening #

putList :: [Opening] -> Put #

NFData Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

rnf :: Opening -> () #

Eq Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

(==) :: Opening -> Opening -> Bool #

(/=) :: Opening -> Opening -> Bool #

Hashable Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

hashWithSalt :: Int -> Opening -> Int #

hash :: Opening -> Int #

Lift Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

Methods

lift :: Quote m => Opening -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Opening -> Code m Opening #

type Rep Opening Source # 
Instance details

Defined in Game.Chess.Internal.ECO

type Rep Opening = D1 ('MetaData "Opening" "Game.Chess.Internal.ECO" "chessIO-0.9.3.1-FhorHdlbYNXK07vrmB8ltu" 'False) (C1 ('MetaCons "CO" 'PrefixI 'True) ((S1 ('MetaSel ('Just "coCode") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "coName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "coVariation") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "coPlies") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector Ply)))))

Query

lookup :: Position -> ECO -> Maybe Opening Source #

Retrieve the opening for a particular position

Conversion

Parsing eco.pgn files

fromPGN :: PGN -> ECO Source #

Convert a PGN database to ECO assuming the ECO, Opening and Variation tags are being used to identify chess openings.

Parsing scid .eco files

scid :: Parser ECO Source #

A parser for opening databases in SCID .eco format

Template Haskell

embedECO :: FileReader -> FilePath -> SpliceQ ECO Source #

ecoPgn :: FileReader Source #

Parse an ECO database in .pgn format

scidEco :: FileReader Source #

Parse an ECO database in .eco format