module BishBosh.Input.Options(
RandomSeed,
Options(
getMaybeMaximumPlies,
getMaybeRandomSeed,
getEvaluationOptions,
getSearchOptions,
getIOOptions
),
tag,
maximumPliesTag,
randomSeedTag,
mkOptions,
setMaybeOutputConfigFilePath,
setMaybeRandomSeed,
setMaybePersistence,
setVerbosity,
setEitherNativeUIOrCECPOptions,
setMaybePrintMoveTree,
swapSearchDepth
) where
import BishBosh.Data.Bool()
import qualified BishBosh.Data.Exception as Data.Exception
import qualified BishBosh.Input.EvaluationOptions as Input.EvaluationOptions
import qualified BishBosh.Input.IOOptions as Input.IOOptions
import qualified BishBosh.Input.PGNOptions as Input.PGNOptions
import qualified BishBosh.Input.SearchOptions as Input.SearchOptions
import qualified BishBosh.Input.UIOptions as Input.UIOptions
import qualified BishBosh.Input.Verbosity as Input.Verbosity
import qualified BishBosh.Property.Arboreal as Property.Arboreal
import qualified BishBosh.Property.ShowFloat as Property.ShowFloat
import qualified BishBosh.Text.ShowList as Text.ShowList
import qualified BishBosh.Type.Count as Type.Count
import qualified Control.DeepSeq
import qualified Control.Exception
import qualified Data.Default
import qualified Data.Maybe
import qualified System.FilePath
import qualified Text.XML.HXT.Arrow.Pickle as HXT
tag :: String
tag :: String
tag = String
"options"
maximumPliesTag :: String
maximumPliesTag :: String
maximumPliesTag = String
"maximumPlies"
randomSeedTag :: String
randomSeedTag :: String
randomSeedTag = String
"randomSeed"
type RandomSeed = Int
data Options pieceSquareValue = MkOptions {
Options pieceSquareValue -> Maybe NPlies
getMaybeMaximumPlies :: Maybe Type.Count.NPlies,
Options pieceSquareValue -> Maybe NPlies
getMaybeRandomSeed :: Maybe RandomSeed,
Options pieceSquareValue -> EvaluationOptions pieceSquareValue
getEvaluationOptions :: Input.EvaluationOptions.EvaluationOptions pieceSquareValue,
Options pieceSquareValue -> SearchOptions
getSearchOptions :: Input.SearchOptions.SearchOptions,
Options pieceSquareValue -> IOOptions
getIOOptions :: Input.IOOptions.IOOptions
} deriving (Options pieceSquareValue -> Options pieceSquareValue -> Bool
(Options pieceSquareValue -> Options pieceSquareValue -> Bool)
-> (Options pieceSquareValue -> Options pieceSquareValue -> Bool)
-> Eq (Options pieceSquareValue)
forall pieceSquareValue.
Eq pieceSquareValue =>
Options pieceSquareValue -> Options pieceSquareValue -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Options pieceSquareValue -> Options pieceSquareValue -> Bool
$c/= :: forall pieceSquareValue.
Eq pieceSquareValue =>
Options pieceSquareValue -> Options pieceSquareValue -> Bool
== :: Options pieceSquareValue -> Options pieceSquareValue -> Bool
$c== :: forall pieceSquareValue.
Eq pieceSquareValue =>
Options pieceSquareValue -> Options pieceSquareValue -> Bool
Eq, NPlies -> Options pieceSquareValue -> ShowS
[Options pieceSquareValue] -> ShowS
Options pieceSquareValue -> String
(NPlies -> Options pieceSquareValue -> ShowS)
-> (Options pieceSquareValue -> String)
-> ([Options pieceSquareValue] -> ShowS)
-> Show (Options pieceSquareValue)
forall pieceSquareValue.
Show pieceSquareValue =>
NPlies -> Options pieceSquareValue -> ShowS
forall pieceSquareValue.
Show pieceSquareValue =>
[Options pieceSquareValue] -> ShowS
forall pieceSquareValue.
Show pieceSquareValue =>
Options pieceSquareValue -> String
forall a.
(NPlies -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Options pieceSquareValue] -> ShowS
$cshowList :: forall pieceSquareValue.
Show pieceSquareValue =>
[Options pieceSquareValue] -> ShowS
show :: Options pieceSquareValue -> String
$cshow :: forall pieceSquareValue.
Show pieceSquareValue =>
Options pieceSquareValue -> String
showsPrec :: NPlies -> Options pieceSquareValue -> ShowS
$cshowsPrec :: forall pieceSquareValue.
Show pieceSquareValue =>
NPlies -> Options pieceSquareValue -> ShowS
Show)
instance Control.DeepSeq.NFData pieceSquareValue => Control.DeepSeq.NFData (Options pieceSquareValue) where
rnf :: Options pieceSquareValue -> ()
rnf MkOptions {
getMaybeMaximumPlies :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeMaximumPlies = Maybe NPlies
maybeMaximumPlies,
getMaybeRandomSeed :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
maybeRandomSeed,
getEvaluationOptions :: forall pieceSquareValue.
Options pieceSquareValue -> EvaluationOptions pieceSquareValue
getEvaluationOptions = EvaluationOptions pieceSquareValue
evaluationOptions,
getSearchOptions :: forall pieceSquareValue. Options pieceSquareValue -> SearchOptions
getSearchOptions = SearchOptions
searchOptions,
getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions
} = (Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> ()
forall a. NFData a => a -> ()
Control.DeepSeq.rnf (Maybe NPlies
maybeMaximumPlies, Maybe NPlies
maybeRandomSeed, EvaluationOptions pieceSquareValue
evaluationOptions, SearchOptions
searchOptions, IOOptions
ioOptions)
instance (Real pieceSquareValue, Show pieceSquareValue) => Property.ShowFloat.ShowFloat (Options pieceSquareValue) where
showsFloat :: (Double -> ShowS) -> Options pieceSquareValue -> ShowS
showsFloat Double -> ShowS
fromDouble MkOptions {
getMaybeMaximumPlies :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeMaximumPlies = Maybe NPlies
maybeMaximumPlies,
getMaybeRandomSeed :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
maybeRandomSeed,
getEvaluationOptions :: forall pieceSquareValue.
Options pieceSquareValue -> EvaluationOptions pieceSquareValue
getEvaluationOptions = EvaluationOptions pieceSquareValue
evaluationOptions,
getSearchOptions :: forall pieceSquareValue. Options pieceSquareValue -> SearchOptions
getSearchOptions = SearchOptions
searchOptions,
getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions
} = [(String, ShowS)] -> ShowS
Text.ShowList.showsAssociationList' ([(String, ShowS)] -> ShowS)
-> ([(String, ShowS)] -> [(String, ShowS)])
-> [(String, ShowS)]
-> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([(String, ShowS)] -> [(String, ShowS)])
-> (NPlies -> [(String, ShowS)] -> [(String, ShowS)])
-> Maybe NPlies
-> [(String, ShowS)]
-> [(String, ShowS)]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [(String, ShowS)] -> [(String, ShowS)]
forall a. a -> a
id (
(:) ((String, ShowS) -> [(String, ShowS)] -> [(String, ShowS)])
-> (NPlies -> (String, ShowS))
-> NPlies
-> [(String, ShowS)]
-> [(String, ShowS)]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (,) String
maximumPliesTag (ShowS -> (String, ShowS))
-> (NPlies -> ShowS) -> NPlies -> (String, ShowS)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NPlies -> ShowS
forall a. Show a => a -> ShowS
shows
) Maybe NPlies
maybeMaximumPlies ([(String, ShowS)] -> ShowS) -> [(String, ShowS)] -> ShowS
forall a b. (a -> b) -> a -> b
$ ([(String, ShowS)] -> [(String, ShowS)])
-> (NPlies -> [(String, ShowS)] -> [(String, ShowS)])
-> Maybe NPlies
-> [(String, ShowS)]
-> [(String, ShowS)]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [(String, ShowS)] -> [(String, ShowS)]
forall a. a -> a
id (
(:) ((String, ShowS) -> [(String, ShowS)] -> [(String, ShowS)])
-> (NPlies -> (String, ShowS))
-> NPlies
-> [(String, ShowS)]
-> [(String, ShowS)]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (,) String
randomSeedTag (ShowS -> (String, ShowS))
-> (NPlies -> ShowS) -> NPlies -> (String, ShowS)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NPlies -> ShowS
forall a. Show a => a -> ShowS
shows
) Maybe NPlies
maybeRandomSeed [
(
String
Input.EvaluationOptions.tag,
(Double -> ShowS) -> EvaluationOptions pieceSquareValue -> ShowS
forall a. ShowFloat a => (Double -> ShowS) -> a -> ShowS
Property.ShowFloat.showsFloat Double -> ShowS
fromDouble EvaluationOptions pieceSquareValue
evaluationOptions
), (
String
Input.SearchOptions.tag,
SearchOptions -> ShowS
forall a. Show a => a -> ShowS
shows SearchOptions
searchOptions
), (
String
Input.IOOptions.tag,
IOOptions -> ShowS
forall a. Show a => a -> ShowS
shows IOOptions
ioOptions
)
]
instance Data.Default.Default (Options pieceSquareValue) where
def :: Options pieceSquareValue
def = MkOptions :: forall pieceSquareValue.
Maybe NPlies
-> Maybe NPlies
-> EvaluationOptions pieceSquareValue
-> SearchOptions
-> IOOptions
-> Options pieceSquareValue
MkOptions {
getMaybeMaximumPlies :: Maybe NPlies
getMaybeMaximumPlies = Maybe NPlies
forall a. Maybe a
Nothing,
getMaybeRandomSeed :: Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
forall a. Maybe a
Nothing,
getEvaluationOptions :: EvaluationOptions pieceSquareValue
getEvaluationOptions = EvaluationOptions pieceSquareValue
forall a. Default a => a
Data.Default.def,
getSearchOptions :: SearchOptions
getSearchOptions = SearchOptions
forall a. Default a => a
Data.Default.def,
getIOOptions :: IOOptions
getIOOptions = IOOptions
forall a. Default a => a
Data.Default.def
}
instance (
Fractional pieceSquareValue,
Ord pieceSquareValue,
Real pieceSquareValue,
Show pieceSquareValue
) => HXT.XmlPickler (Options pieceSquareValue) where
xpickle :: PU (Options pieceSquareValue)
xpickle = String
-> PU (Options pieceSquareValue) -> PU (Options pieceSquareValue)
forall a. String -> PU a -> PU a
HXT.xpElem String
tag (PU (Options pieceSquareValue) -> PU (Options pieceSquareValue))
-> (PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> PU (Options pieceSquareValue))
-> PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> PU (Options pieceSquareValue)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> Options pieceSquareValue,
Options pieceSquareValue
-> (Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions))
-> PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> PU (Options pieceSquareValue)
forall a b. (a -> b, b -> a) -> PU a -> PU b
HXT.xpWrap (
\(Maybe NPlies
a, Maybe NPlies
b, EvaluationOptions pieceSquareValue
c, SearchOptions
d, IOOptions
e) -> Maybe NPlies
-> Maybe NPlies
-> EvaluationOptions pieceSquareValue
-> SearchOptions
-> IOOptions
-> Options pieceSquareValue
forall pieceSquareValue.
Maybe NPlies
-> Maybe NPlies
-> EvaluationOptions pieceSquareValue
-> SearchOptions
-> IOOptions
-> Options pieceSquareValue
mkOptions Maybe NPlies
a Maybe NPlies
b EvaluationOptions pieceSquareValue
c SearchOptions
d IOOptions
e,
\MkOptions {
getMaybeMaximumPlies :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeMaximumPlies = Maybe NPlies
maybeMaximumPlies,
getMaybeRandomSeed :: forall pieceSquareValue. Options pieceSquareValue -> Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
maybeRandomSeed,
getEvaluationOptions :: forall pieceSquareValue.
Options pieceSquareValue -> EvaluationOptions pieceSquareValue
getEvaluationOptions = EvaluationOptions pieceSquareValue
evaluationOptions,
getSearchOptions :: forall pieceSquareValue. Options pieceSquareValue -> SearchOptions
getSearchOptions = SearchOptions
searchOptions,
getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions
} -> (
Maybe NPlies
maybeMaximumPlies,
Maybe NPlies
maybeRandomSeed,
EvaluationOptions pieceSquareValue
evaluationOptions,
SearchOptions
searchOptions,
IOOptions
ioOptions
)
) (PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> PU (Options pieceSquareValue))
-> PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
-> PU (Options pieceSquareValue)
forall a b. (a -> b) -> a -> b
$ PU (Maybe NPlies)
-> PU (Maybe NPlies)
-> PU (EvaluationOptions pieceSquareValue)
-> PU SearchOptions
-> PU IOOptions
-> PU
(Maybe NPlies, Maybe NPlies, EvaluationOptions pieceSquareValue,
SearchOptions, IOOptions)
forall a b c d e.
PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)
HXT.xp5Tuple (
String -> PU NPlies -> PU (Maybe NPlies)
forall a. String -> PU a -> PU (Maybe a)
HXT.xpAttrImplied String
maximumPliesTag PU NPlies
forall a. XmlPickler a => PU a
HXT.xpickle
) (
String -> PU NPlies -> PU (Maybe NPlies)
forall a. String -> PU a -> PU (Maybe a)
HXT.xpAttrImplied String
randomSeedTag PU NPlies
HXT.xpInt
) PU (EvaluationOptions pieceSquareValue)
forall a. XmlPickler a => PU a
HXT.xpickle PU SearchOptions
forall a. XmlPickler a => PU a
HXT.xpickle PU IOOptions
forall a. XmlPickler a => PU a
HXT.xpickle
mkOptions
:: Maybe Type.Count.NPlies
-> Maybe RandomSeed
-> Input.EvaluationOptions.EvaluationOptions pieceSquareValue
-> Input.SearchOptions.SearchOptions
-> Input.IOOptions.IOOptions
-> Options pieceSquareValue
mkOptions :: Maybe NPlies
-> Maybe NPlies
-> EvaluationOptions pieceSquareValue
-> SearchOptions
-> IOOptions
-> Options pieceSquareValue
mkOptions Maybe NPlies
maybeMaximumPlies Maybe NPlies
maybeRandomSeed EvaluationOptions pieceSquareValue
evaluationOptions SearchOptions
searchOptions IOOptions
ioOptions
| Just NPlies
maximumPlies <- Maybe NPlies
maybeMaximumPlies
, NPlies
maximumPlies NPlies -> NPlies -> Bool
forall a. Ord a => a -> a -> Bool
<= NPlies
0 = Exception -> Options pieceSquareValue
forall a e. Exception e => e -> a
Control.Exception.throw (Exception -> Options pieceSquareValue)
-> (String -> Exception) -> String -> Options pieceSquareValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Exception
Data.Exception.mkOutOfBounds (String -> Exception) -> ShowS -> String -> Exception
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
"BishBosh.Input.Options.mkOptions:\t" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
maximumPliesTag ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShowS
Text.ShowList.showsAssociation (String -> Options pieceSquareValue)
-> String -> Options pieceSquareValue
forall a b. (a -> b) -> a -> b
$ NPlies -> ShowS
forall a. Show a => a -> ShowS
shows NPlies
maximumPlies String
" must exceed zero."
| SearchOptions -> Bool
Input.SearchOptions.getSortOnStandardOpeningMoveFrequency SearchOptions
searchOptions Bool -> Bool -> Bool
&& [PGNOptions] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (
IOOptions -> [PGNOptions]
Input.IOOptions.getPGNOptionsList IOOptions
ioOptions
) = Exception -> Options pieceSquareValue
forall a e. Exception e => e -> a
Control.Exception.throw (Exception -> Options pieceSquareValue)
-> (String -> Exception) -> String -> Options pieceSquareValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Exception
Data.Exception.mkIncompatibleData (String -> Exception) -> ShowS -> String -> Exception
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
"BishBosh.Input.Options.mkOptions:\tcan't implement '" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
Input.SearchOptions.tag ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'.' ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
Input.SearchOptions.sortOnStandardOpeningMoveFrequencyTag ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
"' without any '" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ShowS
showString String
Input.PGNOptions.tag ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'.' (String -> Options pieceSquareValue)
-> String -> Options pieceSquareValue
forall a b. (a -> b) -> a -> b
$ String -> ShowS
showString String
Input.PGNOptions.databaseFilePathTag String
"'"
| Bool
otherwise = MkOptions :: forall pieceSquareValue.
Maybe NPlies
-> Maybe NPlies
-> EvaluationOptions pieceSquareValue
-> SearchOptions
-> IOOptions
-> Options pieceSquareValue
MkOptions {
getMaybeMaximumPlies :: Maybe NPlies
getMaybeMaximumPlies = Maybe NPlies
maybeMaximumPlies,
getMaybeRandomSeed :: Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
maybeRandomSeed,
getEvaluationOptions :: EvaluationOptions pieceSquareValue
getEvaluationOptions = EvaluationOptions pieceSquareValue
evaluationOptions,
getSearchOptions :: SearchOptions
getSearchOptions = SearchOptions
searchOptions,
getIOOptions :: IOOptions
getIOOptions = IOOptions
ioOptions
}
type Transformation pieceSquareValue = Options pieceSquareValue -> Options pieceSquareValue
setMaybeOutputConfigFilePath :: Maybe System.FilePath.FilePath -> Transformation pieceSquareValue
setMaybeOutputConfigFilePath :: Maybe String -> Transformation pieceSquareValue
setMaybeOutputConfigFilePath Maybe String
maybeOutputConfigFilePath options :: Options pieceSquareValue
options@MkOptions { getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions } = Options pieceSquareValue
options {
getIOOptions :: IOOptions
getIOOptions = Maybe String -> Transformation
Input.IOOptions.setMaybeOutputConfigFilePath Maybe String
maybeOutputConfigFilePath IOOptions
ioOptions
}
setMaybeRandomSeed :: Maybe RandomSeed -> Transformation pieceSquareValue
setMaybeRandomSeed :: Maybe NPlies -> Transformation pieceSquareValue
setMaybeRandomSeed Maybe NPlies
maybeRandomSeed Options pieceSquareValue
options = Options pieceSquareValue
options {
getMaybeRandomSeed :: Maybe NPlies
getMaybeRandomSeed = Maybe NPlies
maybeRandomSeed
}
setMaybePersistence :: Maybe (System.FilePath.FilePath, Bool) -> Transformation pieceSquareValue
setMaybePersistence :: Maybe (String, Bool) -> Transformation pieceSquareValue
setMaybePersistence Maybe (String, Bool)
maybePersistence options :: Options pieceSquareValue
options@MkOptions { getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions } = Options pieceSquareValue
options {
getIOOptions :: IOOptions
getIOOptions = IOOptions
ioOptions {
getMaybePersistence :: Maybe (String, Bool)
Input.IOOptions.getMaybePersistence = Maybe (String, Bool)
maybePersistence
}
}
setVerbosity :: Input.Verbosity.Verbosity -> Transformation pieceSquareValue
setVerbosity :: Verbosity -> Transformation pieceSquareValue
setVerbosity Verbosity
verbosity options :: Options pieceSquareValue
options@MkOptions { getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions } = Options pieceSquareValue
options {
getIOOptions :: IOOptions
getIOOptions = Verbosity -> Transformation
Input.IOOptions.setVerbosity Verbosity
verbosity IOOptions
ioOptions
}
setEitherNativeUIOrCECPOptions :: Input.UIOptions.EitherNativeUIOrCECPOptions -> Transformation pieceSquareValue
setEitherNativeUIOrCECPOptions :: EitherNativeUIOrCECPOptions -> Transformation pieceSquareValue
setEitherNativeUIOrCECPOptions EitherNativeUIOrCECPOptions
eitherNativeUIOrCECPOptions options :: Options pieceSquareValue
options@MkOptions { getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions } = Options pieceSquareValue
options {
getIOOptions :: IOOptions
getIOOptions = EitherNativeUIOrCECPOptions -> Transformation
Input.IOOptions.setEitherNativeUIOrCECPOptions EitherNativeUIOrCECPOptions
eitherNativeUIOrCECPOptions IOOptions
ioOptions
}
setMaybePrintMoveTree :: Maybe Property.Arboreal.Depth -> Transformation pieceSquareValue
setMaybePrintMoveTree :: Maybe NPlies -> Transformation pieceSquareValue
setMaybePrintMoveTree Maybe NPlies
maybePrintMoveTree options :: Options pieceSquareValue
options@MkOptions { getIOOptions :: forall pieceSquareValue. Options pieceSquareValue -> IOOptions
getIOOptions = IOOptions
ioOptions } = Options pieceSquareValue
options {
getIOOptions :: IOOptions
getIOOptions = Maybe NPlies -> Transformation
Input.IOOptions.setMaybePrintMoveTree Maybe NPlies
maybePrintMoveTree IOOptions
ioOptions
}
swapSearchDepth :: Transformation pieceSquareValue
swapSearchDepth :: Transformation pieceSquareValue
swapSearchDepth options :: Options pieceSquareValue
options@MkOptions { getSearchOptions :: forall pieceSquareValue. Options pieceSquareValue -> SearchOptions
getSearchOptions = SearchOptions
searchOptions } = Options pieceSquareValue
options {
getSearchOptions :: SearchOptions
getSearchOptions = Transformation
Input.SearchOptions.swapSearchDepth SearchOptions
searchOptions
}