Config:
debug: 'no'
sanitize: 'none'
optimize: 'yes'
arch: 'x86_64'
bits: '64'
kernel: 'MSYS_NT-10.0-26100'
os: 'Windows_NT'
prefetch: 'yes'
popcnt: 'yes'
pext: 'no'
sse: 'yes'
mmx: 'no'
sse2: 'yes'
ssse3: 'yes'
sse41: 'yes'
avx2: 'yes'
avxvnni: 'no'
avx512: 'no'
vnni256: 'no'
vnni512: 'no'
neon: 'no'
dotprod: 'no'
arm_version: '0'
target_windows: 'yes'

Flags:
CXX: g++
CXXFLAGS:  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig="C:/openbench-local/OpenBench/client/Networks/1C000000" -DEvalFileDefaultNameSmall="nn-37f18f62d772.nnue"
LDFLAGS:   -m64 -Wl,--no-as-needed -static -lpthread  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig="C:/openbench-local/OpenBench/client/Networks/1C000000" -DEvalFileDefaultNameSmall="nn-37f18f62d772.nnue" -flto=jobserver

Testing config sanity. If this fails, try 'make help' ...

make ARCH=x86-64-avx2 COMP=gcc all
make[1]: Entering directory '/c/Users/BigZer/AppData/Local/Temp/tmpbrqlwbem/HypnoS/HypnoS-tmp/src'
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o benchmark.o benchmark.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o bitboard.o bitboard.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o evaluate.o evaluate.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o experience.o experience.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o main.o main.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o misc.o misc.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o movegen.o movegen.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o movepick.o movepick.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o position.o position.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o search.o search.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o thread.o thread.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o timeman.o timeman.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o tt.o tt.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o uci.o uci.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o ucioption.o ucioption.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o tune.o tune.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o tbprobe.o syzygy/tbprobe.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o evaluate_nnue.o nnue/evaluate_nnue.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o half_ka_v2_hm.o nnue/features/half_ka_v2_hm.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o book.o book/book.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o polyglot.o book/polyglot/polyglot.cpp
g++  -Wall -Wcast-qual -fno-exceptions -std=c++17  -pedantic -Wextra -Wshadow -Wmissing-declarations -m64 -DUSE_PTHREADS -DNDEBUG -O3 -funroll-loops -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_AVX2 -mavx2 -mbmi -DUSE_SSE41 -msse4.1 -DUSE_SSSE3 -mssse3 -DUSE_SSE2 -msse2 -DARCH=x86-64-avx2 -flto -flto-partition=one -DEvalFileDefaultNameBig=\"C:/openbench-local/OpenBench/client/Networks/1C000000\" -DEvalFileDefaultNameSmall=\"nn-37f18f62d772.nnue\"   -c -o ctg.o book/ctg/ctg.cpp
search.cpp:66:1: error: 'LimitsType' does not name a type
   66 | LimitsType Limits;
      | ^~~~~~~~~~
search.cpp:74:1: error: 'Depth' does not name a type
   74 | Depth ProbeDepth;
      | ^~~~~
search.cpp:80:7: error: 'Eval' has not been declared
   80 | using Eval::evaluate;
      |       ^~~~
search.cpp:96:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
   96 | Value futility_margin(Depth d, bool noTtCutNode, bool improving, bool oppWorsening) {
      | ^~~~~
      | pvalueW
search.cpp:105:16: error: 'MAX_MOVES' was not declared in this scope; did you mean 'Hypnos::MAX_MOVES'?
  105 | int Reductions[MAX_MOVES];  // [depth or moveNumber]
      |                ^~~~~~~~~
      |                Hypnos::MAX_MOVES
In file included from misc.h:43,
                 from search.h:25,
                 from search.cpp:19:
types.h:108:15: note: 'Hypnos::MAX_MOVES' declared here
  108 | constexpr int MAX_MOVES = 256;
      |               ^~~~~~~~~
search.cpp:107:1: error: 'Depth' does not name a type
  107 | Depth reduction(bool i, Depth d, int mn, int delta, int rootDelta) {
      | ^~~~~
search.cpp:113:51: error: 'Depth' has not been declared
  113 | constexpr int futility_move_count(bool improving, Depth depth) {
      |                                                   ^~~~~
search.cpp:118:11: error: 'Value' does not name a type; did you mean 'pvalueW'?
  118 | constexpr Value to_static_eval(const Value v) {
      |           ^~~~~
      |           pvalueW
search.cpp:129:16: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  129 | int stat_bonus(Depth d) {
      |                ^~~~~
      |                Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:135:16: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  135 | int stat_malus(Depth d) {
      |                ^~~~~
      |                Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:142:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  142 | Value value_draw(const Thread* thisThread) {
      | ^~~~~
      | pvalueW
search.cpp:163:23: error: 'Depth' has not been declared
  163 |     bool time_to_pick(Depth depth) const { return depth == 1 + int(level); }
      |                       ^~~~~
search.cpp:164:5: error: 'Move' does not name a type
  164 |     Move pick_best(size_t multiPV);
      |     ^~~~
search.cpp:167:5: error: 'Move' does not name a type
  167 |     Move   best = Move::none();
      |     ^~~~
search.cpp:173:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  173 | Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, bool cutNode);
      | ^~~~~
      | pvalueW
search.cpp:176:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  176 | Value qsearch(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth = 0);
      | ^~~~~
      | pvalueW
search.cpp:178:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  178 | Value value_to_tt(Value v, int ply);
      | ^~~~~
      | pvalueW
search.cpp:179:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  179 | Value value_from_tt(Value v, int ply, int r50c);
      | ^~~~~
      | pvalueW
search.cpp:180:7: error: variable or field 'update_pv' declared void
  180 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |       ^~~~~~~~~
search.cpp:180:17: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  180 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |                 ^~~~
      |                 Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:180:23: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
  180 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |                       ^~
      |                       Hypnos::UCI::pv
In file included from search.cpp:47:
uci.h:85:13: note: 'Hypnos::UCI::pv' declared here
   85 | std::string pv(const Position& pos, Depth depth);
      |             ^~
search.cpp:180:27: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  180 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |                           ^~~~
      |                           Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:180:38: error: expected primary-expression before 'const'
  180 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |                                      ^~~~~
search.cpp:181:7: error: variable or field 'update_continuation_histories' declared void
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:181:37: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                     ^~~~~
      |                                     Hypnos::Search::Stack
search.h:39:8: note: 'Hypnos::Search::Stack' declared here
   39 | struct Stack {
      |        ^~~~~
search.cpp:181:44: error: 'ss' was not declared in this scope
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                            ^~
search.cpp:181:48: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                                ^~~~~
      |                                                Hypnos::Piece
types.h:179:6: note: 'Hypnos::Piece' declared here
  179 | enum Piece {
      |      ^~~~~
search.cpp:181:58: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                                          ^~~~~~
      |                                                          Hypnos::Square
types.h:212:6: note: 'Hypnos::Square' declared here
  212 | enum Square : int {
      |      ^~~~~~
search.cpp:181:69: error: expected primary-expression before 'int'
  181 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                                                     ^~~
search.cpp:182:32: error: 'Position' does not name a type
  182 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                ^~~~~~~~
search.cpp:182:47: error: 'Stack' has not been declared
  182 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                               ^~~~~
search.cpp:182:58: error: 'Move' has not been declared
  182 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                                          ^~~~
search.cpp:183:30: error: 'Position' does not name a type
  183 | void  update_all_stats(const Position& pos,
      |                              ^~~~~~~~
search.cpp:184:24: error: 'Stack' has not been declared
  184 |                        Stack*          ss,
      |                        ^~~~~
search.cpp:185:24: error: 'Move' has not been declared
  185 |                        Move            bestMove,
      |                        ^~~~
search.cpp:186:24: error: 'Value' has not been declared
  186 |                        Value           bestValue,
      |                        ^~~~~
search.cpp:187:24: error: 'Value' has not been declared
  187 |                        Value           beta,
      |                        ^~~~~
search.cpp:188:24: error: 'Square' has not been declared
  188 |                        Square          prevSq,
      |                        ^~~~~~
search.cpp:189:24: error: 'Move' has not been declared
  189 |                        Move*           quietsSearched,
      |                        ^~~~
search.cpp:191:24: error: 'Move' has not been declared
  191 |                        Move*           capturesSearched,
      |                        ^~~~
search.cpp:193:24: error: 'Depth' has not been declared
  193 |                        Depth           depth);
      |                        ^~~~~
search.cpp:198:16: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
  198 | uint64_t perft(Position& pos, Depth depth) {
      |                ^~~~~~~~
      |                Hypnos::Position
In file included from movepick.h:32,
                 from search.h:26:
position.h:80:7: note: 'Hypnos::Position' declared here
   80 | class Position {
      |       ^~~~~~~~
search.cpp:198:26: error: 'pos' was not declared in this scope; did you mean 'pow'?
  198 | uint64_t perft(Position& pos, Depth depth) {
      |                          ^~~
      |                          pow
search.cpp:198:31: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  198 | uint64_t perft(Position& pos, Depth depth) {
      |                               ^~~~~
      |                               Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:198:42: error: expression list treated as compound expression in initializer [-fpermissive]
  198 | uint64_t perft(Position& pos, Depth depth) {
      |                                          ^
search.cpp:198:43: error: expected ';' before '{' token
  198 | uint64_t perft(Position& pos, Depth depth) {
      |                                           ^~
      |                                           ;
search.cpp:227:19: error: 'void Search::init()' should have been declared inside 'Search'
  227 | void Search::init() {
      |                   ^
search.cpp:227:6: warning: no previous declaration for 'void Search::init()' [-Wmissing-declarations]
  227 | void Search::init() {
      |      ^~~~~~
search.cpp: In function 'void Search::init()':
search.cpp:229:25: error: 'MAX_MOVES' was not declared in this scope; did you mean 'Hypnos::MAX_MOVES'?
  229 |     for (int i = 1; i < MAX_MOVES; ++i)
      |                         ^~~~~~~~~
      |                         Hypnos::MAX_MOVES
types.h:108:15: note: 'Hypnos::MAX_MOVES' declared here
  108 | constexpr int MAX_MOVES = 256;
      |               ^~~~~~~~~
search.cpp:230:9: error: 'Reductions' was not declared in this scope
  230 |         Reductions[i] = int((20.37 + std::log(Threads.size()) / 2) * std::log(i));
      |         ^~~~~~~~~~
search.cpp:230:47: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  230 |         Reductions[i] = int((20.37 + std::log(Threads.size()) / 2) * std::log(i));
      |                                               ^~~~~~~
      |                                               Hypnos::Threads
In file included from search.cpp:44:
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp: At global scope:
search.cpp:235:20: error: 'void Search::clear()' should have been declared inside 'Search'
  235 | void Search::clear() {
      |                    ^
search.cpp:235:6: warning: no previous declaration for 'void Search::clear()' [-Wmissing-declarations]
  235 | void Search::clear() {
      |      ^~~~~~
search.cpp: In function 'void Search::clear()':
search.cpp:237:5: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  237 |     Threads.main()->wait_for_search_finished();
      |     ^~~~~~~
      |     Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:239:5: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  239 |     Time.availableNodes = 0;
      |     ^~~~
      |     Hypnos::Time
In file included from search.cpp:45:
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
search.cpp:240:5: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
  240 |     TT.clear();
      |     ^~
      |     Hypnos::TT
In file included from search.cpp:46:
tt.h:106:27: note: 'Hypnos::TT' declared here
  106 | extern TranspositionTable TT;
      |                           ^~
search.cpp:242:17: error: 'init' is not a member of 'Tablebases'
  242 |     Tablebases::init(Options["SyzygyPath"]);  // Free mapped files
      |                 ^~~~
search.cpp:242:17: note: suggested alternatives:
search.cpp:227:6: note:   'Search::init'
  227 | void Search::init() {
      |      ^~~~~~
In file included from search.cpp:36:
experience.h:212:6: note:   'Experience::init'
  212 | void init();
      |      ^~~~
misc.h:191:6: note:   'Hypnos::CommandLine::init'
  191 | void init(int argc, char* argv[]);
      |      ^~~~
misc.h:201:19: note:   'Hypnos::SysInfo::init'
  201 | void              init();
      |                   ^~~~
misc.h:226:6: note:   'Hypnos::Utility::init'
  226 | void init(const char* arg0);
      |      ^~~~
In file included from position.h:28:
bitboard.h:35:13: note:   'Hypnos::Bitboards::init'
   35 | void        init();
      |             ^~~~
search.h:108:6: note:   'Hypnos::Search::init'
  108 | void init();
      |      ^~~~
In file included from search.cpp:43:
syzygy/tbprobe.h:50:10: note:   'Hypnos::Tablebases::init'
   50 | void     init(const std::string& paths);
      |          ^~~~
uci.h:79:13: note:   'Hypnos::UCI::init'
   79 | void        init(OptionsMap&);
      |             ^~~~
In file included from search.cpp:48:
book/book.h:70:6: note:   'Hypnos::Book::init'
   70 | void init();
      |      ^~~~
In file included from search.cpp:35:
evaluate.h:53:6: note:   'Hypnos::Eval::NNUE::init'
   53 | void init();
      |      ^~~~
search.cpp:242:22: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  242 |     Tablebases::init(Options["SyzygyPath"]);  // Free mapped files
      |                      ^~~~~~~
      |                      Hypnos::Options
uci.h:91:24: note: 'Hypnos::Options' declared here
   91 | extern UCI::OptionsMap Options;
      |                        ^~~~~~~
search.cpp: At global scope:
search.cpp:251:6: error: 'MainThread' has not been declared
  251 | void MainThread::search() {
      |      ^~~~~~~~~~
search.cpp:251:6: warning: no previous declaration for 'void search()' [-Wmissing-declarations]
search.cpp: In function 'void search()':
search.cpp:253:9: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  253 |     if (Limits.perft)
      |         ^~~~~~
      |         Hypnos::Search::Limits
search.h:106:19: note: 'Hypnos::Search::Limits' declared here
  106 | extern LimitsType Limits;
      |                   ^~~~~~
search.cpp:255:9: error: 'nodes' was not declared in this scope
  255 |         nodes = perft<true>(rootPos, Limits.perft);
      |         ^~~~~
search.cpp:255:29: error: 'rootPos' was not declared in this scope
  255 |         nodes = perft<true>(rootPos, Limits.perft);
      |                             ^~~~~~~
search.cpp:255:50: error: '{anonymous}::perft<true>' cannot be used as a function
  255 |         nodes = perft<true>(rootPos, Limits.perft);
      |                                                  ^
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:256:9: note: in expansion of macro 'sync_cout'
  256 |         sync_cout << "\nNodes searched: " << nodes << "\n" << sync_endl;
      |         ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:256:63: note: in expansion of macro 'sync_endl'
  256 |         sync_cout << "\nNodes searched: " << nodes << "\n" << sync_endl;
      |                                                               ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:263:11: error: 'Color' does not name a type
  263 |     const Color us = rootPos.side_to_move();
      |           ^~~~~
search.cpp:264:5: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  264 |     Time.init(Limits, us, rootPos.game_ply());
      |     ^~~~
      |     Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
search.cpp:264:15: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  264 |     Time.init(Limits, us, rootPos.game_ply());
      |               ^~~~~~
      |               Hypnos::Search::Limits
search.h:106:19: note: 'Hypnos::Search::Limits' declared here
  106 | extern LimitsType Limits;
      |                   ^~~~~~
search.cpp:264:23: error: 'us' was not declared in this scope; did you mean 'u8'?
  264 |     Time.init(Limits, us, rootPos.game_ply());
      |                       ^~
      |                       u8
search.cpp:264:27: error: 'rootPos' was not declared in this scope
  264 |     Time.init(Limits, us, rootPos.game_ply());
      |                           ^~~~~~~
search.cpp:265:5: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
  265 |     TT.new_search();
      |     ^~
      |     Hypnos::TT
tt.h:106:27: note: 'Hypnos::TT' declared here
  106 | extern TranspositionTable TT;
      |                           ^~
search.cpp:266:15: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  266 |     variety = Options["Variety"];
      |               ^~~~~~~
      |               Hypnos::Options
uci.h:91:24: note: 'Hypnos::Options' declared here
   91 | extern UCI::OptionsMap Options;
      |                        ^~~~~~~
search.cpp:267:5: error: 'Eval' has not been declared
  267 |     Eval::NNUE::verify();
      |     ^~~~
search.cpp:268:5: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  268 |     Move bookMove = Move::none();
      |     ^~~~
      |     Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:272:9: error: 'rootMoves' was not declared in this scope
  272 |     if (rootMoves.empty())
      |         ^~~~~~~~~
search.cpp:274:32: error: 'Move' is not a class, namespace, or enumeration
  274 |         rootMoves.emplace_back(Move::none());
      |                                ^~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:275:9: note: in expansion of macro 'sync_cout'
  275 |         sync_cout << "info depth 0 score "
      |         ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:276:22: error: 'UCI' has not been declared
  276 |                   << UCI::value(rootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << sync_endl;
      |                      ^~~
search.cpp:276:55: error: 'VALUE_MATE' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE'?
  276 |                   << UCI::value(rootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << sync_endl;
      |                                                       ^~~~~~~~~~
      |                                                       Hypnos::VALUE_MATE
types.h:150:17: note: 'Hypnos::VALUE_MATE' declared here
  150 | constexpr Value VALUE_MATE             = 32000;
      |                 ^~~~~~~~~~
search.cpp:276:68: error: 'VALUE_DRAW' was not declared in this scope; did you mean 'Hypnos::VALUE_DRAW'?
  276 |                   << UCI::value(rootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << sync_endl;
      |                                                                    ^~~~~~~~~~
      |                                                                    Hypnos::VALUE_DRAW
types.h:146:17: note: 'Hypnos::VALUE_DRAW' declared here
  146 | constexpr Value VALUE_DRAW     = 0;
      |                 ^~~~~~~~~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:276:83: note: in expansion of macro 'sync_endl'
  276 |                   << UCI::value(rootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << sync_endl;
      |                                                                                   ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:281:17: error: 'ponder' was not declared in this scope
  281 |             && !ponder)
      |                 ^~~~~~
search.cpp:284:13: error: 'bookMove' was not declared in this scope
  284 |             bookMove = Book::probe(rootPos);
      |             ^~~~~~~~
search.cpp:284:24: error: 'Book' has not been declared
  284 |             bookMove = Book::probe(rootPos);
      |                        ^~~~
search.cpp:287:29: error: 'Move' is not a class, namespace, or enumeration
  287 |             if (bookMove == Move::none() && (bool) Options["Experience Book"]
      |                             ^~~~
search.cpp:291:47: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  291 |                 const auto  expBookMinDepth = Depth(Options["Experience Book Min Depth"]);
      |                                               ^~~~~
      |                                               Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:332:29: note: in expansion of macro 'sync_cout'
  332 |                             sync_cout << "info "
      |                             ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:335:55: error: 'UCI' has not been declared
  335 |                                       << " score " << UCI::value(it->first->value) << " nodes "
      |                                                       ^~~
search.cpp:338:52: error: 'UCI' has not been declared
  338 |                                       << " pv " << UCI::move(it->first->move, rootPos.is_chess960())
      |                                                    ^~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:339:42: note: in expansion of macro 'sync_endl'
  339 |                                       << sync_endl;
      |                                          ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:345:36: error: 'PRNG' does not name a type
  345 |                             static PRNG rng(now());
      |                                    ^~~~
search.cpp:348:48: error: 'rng' was not declared in this scope
  348 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                ^~~
search.cpp:348:65: error: expected primary-expression before '>' token
  348 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                                 ^
search.cpp:348:67: error: expected primary-expression before ')' token
  348 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                                   ^
search.cpp:360:29: error: 'Move' is not a class, namespace, or enumeration
  360 |             if (bookMove != Move::none()
      |                             ^~~~
search.cpp:365:22: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  365 |                 for (Thread* th : Threads)
      |                      ^~~~~~
      |                      Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:365:33: error: found ':' in nested-name-specifier, expected '::'
  365 |                 for (Thread* th : Threads)
      |                                 ^
      |                                 ::
search.cpp:365:30: error: 'th' has not been declared
  365 |                 for (Thread* th : Threads)
      |                              ^~
search.cpp:368:13: error: expected primary-expression before '}' token
  368 |             }
      |             ^
search.cpp:367:97: error: expected ';' before '}' token
  367 |                               *std::find(th->rootMoves.begin(), th->rootMoves.end(), bookMove));
      |                                                                                                 ^
      |                                                                                                 ;
  368 |             }
      |             ~                                                                                    
search.cpp:368:13: error: expected primary-expression before '}' token
  368 |             }
      |             ^
search.cpp:367:97: error: expected ')' before '}' token
  367 |                               *std::find(th->rootMoves.begin(), th->rootMoves.end(), bookMove));
      |                                                                                                 ^
      |                                                                                                 )
  368 |             }
      |             ~                                                                                    
search.cpp:365:21: note: to match this '('
  365 |                 for (Thread* th : Threads)
      |                     ^
search.cpp:368:13: error: expected primary-expression before '}' token
  368 |             }
      |             ^
search.cpp:372:13: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  372 |             Threads.start_searching();  // start non-main threads
      |             ^~~~~~~
      |             Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:373:13: error: 'Thread' has not been declared
  373 |             Thread::search();           // main thread start searching
      |             ^~~~~~
search.cpp:383:13: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  383 |     while (!Threads.stop && (ponder || Limits.infinite))
      |             ^~~~~~~
      |             Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:383:30: error: 'ponder' was not declared in this scope
  383 |     while (!Threads.stop && (ponder || Limits.infinite))
      |                              ^~~~~~
search.cpp:388:5: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  388 |     Threads.stop = true;
      |     ^~~~~~~
      |     Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:398:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  398 |     Thread* bestThread = this;
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:398:13: error: 'bestThread' was not declared in this scope; did you mean 'ExitThread'?
  398 |     Thread* bestThread = this;
      |             ^~~~~~~~~~
      |             ExitThread
search.cpp:398:26: error: invalid use of 'this' in non-member function
  398 |     Thread* bestThread = this;
      |                          ^~~~
search.cpp:403:12: error: 'rootMoves' was not declared in this scope
  403 |         && rootMoves[0].pv[0] != Move::none())
      |            ^~~~~~~~~
search.cpp:403:34: error: 'Move' is not a class, namespace, or enumeration
  403 |         && rootMoves[0].pv[0] != Move::none())
      |                                  ^~~~
search.cpp:419:13: error: 'Move' does not name a type
  419 |             Move  move;
      |             ^~~~
search.cpp:420:13: error: 'Depth' does not name a type
  420 |             Depth depth;
      |             ^~~~~
search.cpp:421:13: error: 'Value' does not name a type; did you mean 'pvalueW'?
  421 |             Value scoreSum;
      |             ^~~~~
      |             pvalueW
search.cpp:425:64: error: template argument 4 is invalid
  425 |         std::unordered_map<Move, UniqueMoveInfo, Move::MoveHash> uniqueMoves;
      |                                                                ^
search.cpp:425:64: error: template argument 5 is invalid
search.cpp:435:55: error: request for member 'find' in 'uniqueMoves', which is of non-class type 'int'
  435 |             auto           existingMove = uniqueMoves.find(thisMove.move);
      |                                                       ^~~~
search.cpp:435:69: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  435 |             auto           existingMove = uniqueMoves.find(thisMove.move);
      |                                                                     ^~~~
search.cpp:437:45: error: request for member 'end' in 'uniqueMoves', which is of non-class type 'int'
  437 |             if (existingMove == uniqueMoves.end())
      |                                             ^~~
search.cpp:439:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  439 |                 uniqueMoves[thisMove.move] = thisMove;
      |                                      ^~~~
search.cpp:444:26: error: 'struct search()::UniqueMoveInfo' has no member named 'depth'
  444 |             if (thisMove.depth > existingMove->second.depth)
      |                          ^~~~~
search.cpp:445:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  445 |                 uniqueMoves[thisMove.move] = thisMove;
      |                                      ^~~~
search.cpp:446:31: error: 'struct search()::UniqueMoveInfo' has no member named 'depth'
  446 |             else if (thisMove.depth == existingMove->second.depth)
      |                               ^~~~~
search.cpp:448:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  448 |                 uniqueMoves[thisMove.move].scoreSum += thisMove.scoreSum;
      |                                      ^~~~
search.cpp:448:65: error: 'struct search()::UniqueMoveInfo' has no member named 'scoreSum'
  448 |                 uniqueMoves[thisMove.move].scoreSum += thisMove.scoreSum;
      |                                                                 ^~~~~~~~
search.cpp:449:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  449 |                 uniqueMoves[thisMove.move].count++;
      |                                      ^~~~
search.cpp:454:41: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
  454 |         for (const auto& [move, info] : uniqueMoves)
      |                                         ^~~~~~~~~~~
      |                                         std::begin
In file included from C:/msys64/mingw64/include/c++/13.2.0/vector:69,
                 from search.h:23:
C:/msys64/mingw64/include/c++/13.2.0/bits/range_access.h:114:37: note: 'std::begin' declared here
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
search.cpp:454:41: error: 'end' was not declared in this scope; did you mean 'std::end'?
  454 |         for (const auto& [move, info] : uniqueMoves)
      |                                         ^~~~~~~~~~~
      |                                         std::end
C:/msys64/mingw64/include/c++/13.2.0/bits/range_access.h:116:37: note: 'std::end' declared here
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
search.cpp:459:13: error: 'Utility' has not been declared
  459 |         if (Utility::is_game_decided(rootPos, bestThread->rootMoves[0].score))
      |             ^~~~~~~
search.cpp:466:5: error: 'bestPreviousScore' was not declared in this scope
  466 |     bestPreviousScore        = bestThread->rootMoves[0].score;
      |     ^~~~~~~~~~~~~~~~~
search.cpp:467:5: error: 'bestPreviousAverageScore' was not declared in this scope
  467 |     bestPreviousAverageScore = bestThread->rootMoves[0].averageScore;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:470:23: error: invalid use of 'this' in non-member function
  470 |     if (bestThread != this)
      |                       ^~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:471:9: note: in expansion of macro 'sync_cout'
  471 |         sync_cout << UCI::pv(bestThread->rootPos, bestThread->completedDepth) << sync_endl;
      |         ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:471:22: error: 'UCI' has not been declared
  471 |         sync_cout << UCI::pv(bestThread->rootPos, bestThread->completedDepth) << sync_endl;
      |                      ^~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:471:82: note: in expansion of macro 'sync_endl'
  471 |         sync_cout << UCI::pv(bestThread->rootPos, bestThread->completedDepth) << sync_endl;
      |                                                                                  ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:473:5: note: in expansion of macro 'sync_cout'
  473 |     sync_cout << "bestmove " << UCI::move(bestThread->rootMoves[0].pv[0], rootPos.is_chess960());
      |     ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:473:33: error: 'UCI' has not been declared
  473 |     sync_cout << "bestmove " << UCI::move(bestThread->rootMoves[0].pv[0], rootPos.is_chess960());
      |                                 ^~~
search.cpp:477:36: error: 'UCI' has not been declared
  477 |         std::cout << " ponder " << UCI::move(bestThread->rootMoves[0].pv[1], rootPos.is_chess960());
      |                                    ^~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:479:18: note: in expansion of macro 'sync_endl'
  479 |     std::cout << sync_endl;
      |                  ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp: At global scope:
search.cpp:485:6: error: 'Thread' has not been declared
  485 | void Thread::search() {
      |      ^~~~~~
search.cpp:485:6: error: redefinition of 'void search()'
search.cpp:251:6: note: 'void search()' previously defined here
  251 | void MainThread::search() {
      |      ^~~~~~~~~~
search.cpp: In function 'void search()':
search.cpp:490:5: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
  490 |     Stack       stack[MAX_PLY + 10], *ss = stack + 7;
      |     ^~~~~
      |     Hypnos::Search::Stack
search.h:39:8: note: 'Hypnos::Search::Stack' declared here
   39 | struct Stack {
      |        ^~~~~
search.cpp:491:5: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  491 |     Move        pv[MAX_PLY + 1];
      |     ^~~~
      |     Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:492:5: error: 'Value' was not declared in this scope; did you mean 'Hypnos::Value'?
  492 |     Value       alpha, beta;
      |     ^~~~~
      |     Hypnos::Value
types.h:143:7: note: 'Hypnos::Value' declared here
  143 | using Value = int;
      |       ^~~~~
search.cpp:493:9: error: expected ';' before 'lastBestMove'
  493 |     Move        lastBestMove      = Move::none();
      |         ^       ~~~~~~~~~~~~
      |         ;
search.cpp:494:5: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  494 |     Depth       lastBestMoveDepth = 0;
      |     ^~~~~
      |     Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:495:5: error: 'MainThread' was not declared in this scope; did you mean 'Hypnos::MainThread'?
  495 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |     ^~~~~~~~~~
      |     Hypnos::MainThread
thread.h:79:8: note: 'Hypnos::MainThread' declared here
   79 | struct MainThread: public Thread {
      |        ^~~~~~~~~~
search.cpp:495:17: error: 'mainThread' was not declared in this scope; did you mean 'OpenThread'?
  495 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |                 ^~~~~~~~~~
      |                 OpenThread
search.cpp:495:38: error: invalid use of 'this' in non-member function
  495 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |                                      ^~~~
search.cpp:495:46: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  495 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |                                              ^~~~~~~
      |                                              Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:497:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
  497 |     Color       us = rootPos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:500:17: error: 'ss' was not declared in this scope
  500 |     std::memset(ss - 7, 0, 10 * sizeof(Stack));
      |                 ^~
search.cpp:504:12: error: invalid use of 'this' in non-member function
  504 |           &this->continuationHistory[0][0][NO_PIECE][0];  // Use as a sentinel
      |            ^~~~
search.cpp:504:44: error: 'NO_PIECE' was not declared in this scope; did you mean 'Hypnos::NO_PIECE'?
  504 |           &this->continuationHistory[0][0][NO_PIECE][0];  // Use as a sentinel
      |                                            ^~~~~~~~
      |                                            Hypnos::NO_PIECE
types.h:180:5: note: 'Hypnos::NO_PIECE' declared here
  180 |     NO_PIECE,
      |     ^~~~~~~~
search.cpp:505:32: error: 'VALUE_NONE' was not declared in this scope; did you mean 'Hypnos::VALUE_NONE'?
  505 |         (ss - i)->staticEval = VALUE_NONE;
      |                                ^~~~~~~~~~
      |                                Hypnos::VALUE_NONE
types.h:147:17: note: 'Hypnos::VALUE_NONE' declared here
  147 | constexpr Value VALUE_NONE     = 32002;
      |                 ^~~~~~~~~~
search.cpp:508:26: error: 'MAX_PLY' was not declared in this scope; did you mean 'Hypnos::MAX_PLY'?
  508 |     for (int i = 0; i <= MAX_PLY + 2; ++i)
      |                          ^~~~~~~
      |                          Hypnos::MAX_PLY
types.h:109:15: note: 'Hypnos::MAX_PLY' declared here
  109 | constexpr int MAX_PLY   = 246;
      |               ^~~~~~~
search.cpp:511:14: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
  511 |     ss->pv = pv;
      |              ^~
      |              Hypnos::UCI::pv
uci.h:85:13: note: 'Hypnos::UCI::pv' declared here
   85 | std::string pv(const Position& pos, Depth depth);
      |             ^~
search.cpp:513:5: error: 'bestValue' was not declared in this scope; did you mean 'GetGValue'?
  513 |     bestValue = -VALUE_INFINITE;
      |     ^~~~~~~~~
      |     GetGValue
search.cpp:513:18: error: 'VALUE_INFINITE' was not declared in this scope; did you mean 'Hypnos::VALUE_INFINITE'?
  513 |     bestValue = -VALUE_INFINITE;
      |                  ^~~~~~~~~~~~~~
      |                  Hypnos::VALUE_INFINITE
types.h:148:17: note: 'Hypnos::VALUE_INFINITE' declared here
  148 | constexpr Value VALUE_INFINITE = 32001;
      |                 ^~~~~~~~~~~~~~
search.cpp:519:44: error: 'VALUE_ZERO' was not declared in this scope; did you mean 'Hypnos::VALUE_ZERO'?
  519 |                 mainThread->iterValue[i] = VALUE_ZERO;
      |                                            ^~~~~~~~~~
      |                                            Hypnos::VALUE_ZERO
types.h:145:17: note: 'Hypnos::VALUE_ZERO' declared here
  145 | constexpr Value VALUE_ZERO     = 0;
      |                 ^~~~~~~~~~
search.cpp:525:29: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  525 |     size_t multiPV = size_t(Options["MultiPV"]);
      |                             ^~~~~~~
      |                             Hypnos::Options
uci.h:91:24: note: 'Hypnos::Options' declared here
   91 | extern UCI::OptionsMap Options;
      |                        ^~~~~~~
search.cpp:533:33: error: 'rootMoves' was not declared in this scope
  533 |     multiPV = std::min(multiPV, rootMoves.size());
      |                                 ^~~~~~~~~
search.cpp:538:14: error: 'rootDepth' was not declared in this scope
  538 |     while (++rootDepth < MAX_PLY && !Threads.stop
      |              ^~~~~~~~~
search.cpp:538:26: error: 'MAX_PLY' was not declared in this scope; did you mean 'Hypnos::MAX_PLY'?
  538 |     while (++rootDepth < MAX_PLY && !Threads.stop
      |                          ^~~~~~~
      |                          Hypnos::MAX_PLY
types.h:109:15: note: 'Hypnos::MAX_PLY' declared here
  109 | constexpr int MAX_PLY   = 246;
      |               ^~~~~~~
search.cpp:539:17: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  539 |            && !(Limits.depth && mainThread && rootDepth > Limits.depth))
      |                 ^~~~~~
      |                 Hypnos::Search::Limits
search.h:106:19: note: 'Hypnos::Search::Limits' declared here
  106 | extern LimitsType Limits;
      |                   ^~~~~~
search.cpp:547:14: error: 'RootMove' was not declared in this scope; did you mean 'Hypnos::Search::RootMove'?
  547 |         for (RootMove& rm : rootMoves)
      |              ^~~~~~~~
      |              Hypnos::Search::RootMove
search.h:60:8: note: 'Hypnos::Search::RootMove' declared here
   60 | struct RootMove {
      |        ^~~~~~~~
search.cpp:547:27: error: found ':' in nested-name-specifier, expected '::'
  547 |         for (RootMove& rm : rootMoves)
      |                           ^
      |                           ::
search.cpp:547:24: error: 'rm' has not been declared
  547 |         for (RootMove& rm : rootMoves)
      |                        ^~
search.cpp:551:9: error: 'pvLast' was not declared in this scope
  551 |         pvLast         = 0;
      |         ^~~~~~
search.cpp:551:27: error: expected ')' before ';' token
  551 |         pvLast         = 0;
      |                           ^
      |                           )
search.cpp:547:13: note: to match this '('
  547 |         for (RootMove& rm : rootMoves)
      |             ^
search.cpp:550:16: warning: unused variable 'pvFirst' [-Wunused-variable]
  550 |         size_t pvFirst = 0;
      |                ^~~~~~~
search.cpp:557:14: error: 'pvIdx' was not declared in this scope
  557 |         for (pvIdx = 0; pvIdx < multiPV && !Threads.stop; ++pvIdx)
      |              ^~~~~
search.cpp:559:26: error: 'pvLast' was not declared in this scope
  559 |             if (pvIdx == pvLast)
      |                          ^~~~~~
search.cpp:561:17: error: 'pvFirst' was not declared in this scope
  561 |                 pvFirst = pvLast;
      |                 ^~~~~~~
search.cpp:568:13: error: 'selDepth' was not declared in this scope
  568 |             selDepth = 0;
      |             ^~~~~~~~
search.cpp:571:18: error: expected ';' before 'avg'
  571 |             Value avg = rootMoves[pvIdx].averageScore;
      |                  ^~~~
      |                  ;
search.cpp:572:41: error: 'avg' was not declared in this scope
  572 |             delta     = Value(10) + int(avg) * avg / 12493;
      |                                         ^~~
search.cpp:573:13: error: 'alpha' was not declared in this scope; did you mean 'isalpha'?
  573 |             alpha     = std::max(avg - delta, -VALUE_INFINITE);
      |             ^~~~~
      |             isalpha
search.cpp:574:13: error: 'beta' was not declared in this scope; did you mean 'std::beta'?
  574 |             beta      = std::min(avg + delta, int(VALUE_INFINITE));
      |             ^~~~
      |             std::beta
In file included from C:/msys64/mingw64/include/c++/13.2.0/cmath:3699,
                 from movepick.h:25:
C:/msys64/mingw64/include/c++/13.2.0/bits/specfun.h:341:5: note: 'std::beta' declared here
  341 |     beta(_Tpa __a, _Tpb __b)
      |     ^~~~
search.cpp:577:13: error: 'optimism' was not declared in this scope
  577 |             optimism[us]  = 132 * avg / (std::abs(avg) + 89);
      |             ^~~~~~~~
search.cpp:577:22: error: 'us' was not declared in this scope; did you mean 'u8'?
  577 |             optimism[us]  = 132 * avg / (std::abs(avg) + 89);
      |                      ^~
      |                      u8
search.cpp:588:22: error: expected ';' before 'adjustedDepth'
  588 |                 Depth adjustedDepth =
      |                      ^~~~~~~~~~~~~~
      |                      ;
search.cpp:590:37: error: 'search' is not a member of 'Hypnos'; did you mean 'Search'?
  590 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                     ^~~~~~
      |                                     Search
search.cpp:590:50: error: 'rootPos' was not declared in this scope
  590 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                                  ^~~~~~~
search.cpp:590:76: error: 'adjustedDepth' was not declared in this scope
  590 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                                                            ^~~~~~~~~~~~~
search.cpp:598:81: error: 'pvLast' was not declared in this scope
  598 |                 std::stable_sort(rootMoves.begin() + pvIdx, rootMoves.begin() + pvLast);
      |                                                                                 ^~~~~~
search.cpp:609:24: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  609 |                     && Time.elapsed() > 3000)
      |                        ^~~~
      |                        Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:610:21: note: in expansion of macro 'sync_cout'
  610 |                     sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                     ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:610:34: error: 'UCI' has not been declared
  610 |                     sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                  ^~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:610:65: note: in expansion of macro 'sync_endl'
  610 |                     sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                                                 ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:637:50: error: 'pvFirst' was not declared in this scope
  637 |             std::stable_sort(rootMoves.begin() + pvFirst, rootMoves.begin() + pvIdx + 1);
      |                                                  ^~~~~~~
search.cpp:639:72: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  639 |             if (mainThread && (Threads.stop || pvIdx + 1 == multiPV || Time.elapsed() > 3000))
      |                                                                        ^~~~
      |                                                                        Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
misc.h:81:32: error: 'IO_LOCK' was not declared in this scope; did you mean 'Hypnos::IO_LOCK'?
   81 | #define sync_cout std::cout << IO_LOCK
      |                                ^~~~~~~
search.cpp:640:17: note: in expansion of macro 'sync_cout'
  640 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                 ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:640:30: error: 'UCI' has not been declared
  640 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                              ^~~
search.cpp:640:38: error: 'rootPos' was not declared in this scope
  640 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                      ^~~~~~~
misc.h:82:32: error: 'IO_UNLOCK' was not declared in this scope; did you mean 'Hypnos::IO_UNLOCK'?
   82 | #define sync_endl std::endl << IO_UNLOCK
      |                                ^~~~~~~~~
search.cpp:640:61: note: in expansion of macro 'sync_endl'
  640 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                                             ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:644:13: error: 'completedDepth' was not declared in this scope
  644 |             completedDepth = rootDepth;
      |             ^~~~~~~~~~~~~~
search.cpp:646:35: error: 'lastBestMove' was not declared in this scope
  646 |         if (rootMoves[0].pv[0] != lastBestMove)
      |                                   ^~~~~~~~~~~~
search.cpp:649:13: error: 'lastBestMoveDepth' was not declared in this scope
  649 |             lastBestMoveDepth = rootDepth;
      |             ^~~~~~~~~~~~~~~~~
search.cpp:657:40: error: 'VALUE_MATE_IN_MAX_PLY' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE_IN_MAX_PLY'?
  657 |             && ((rootMoves[0].score >= VALUE_MATE_IN_MAX_PLY
      |                                        ^~~~~~~~~~~~~~~~~~~~~
      |                                        Hypnos::VALUE_MATE_IN_MAX_PLY
types.h:151:17: note: 'Hypnos::VALUE_MATE_IN_MAX_PLY' declared here
  151 | constexpr Value VALUE_MATE_IN_MAX_PLY  = VALUE_MATE - MAX_PLY;
      |                 ^~~~~~~~~~~~~~~~~~~~~
search.cpp:658:21: error: 'VALUE_MATE' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE'?
  658 |                  && VALUE_MATE - rootMoves[0].score <= 2 * Limits.mate)
      |                     ^~~~~~~~~~
      |                     Hypnos::VALUE_MATE
types.h:150:17: note: 'Hypnos::VALUE_MATE' declared here
  150 | constexpr Value VALUE_MATE             = 32000;
      |                 ^~~~~~~~~~
search.cpp:660:46: error: 'VALUE_MATED_IN_MAX_PLY' was not declared in this scope; did you mean 'Hypnos::VALUE_MATED_IN_MAX_PLY'?
  660 |                     && rootMoves[0].score <= VALUE_MATED_IN_MAX_PLY
      |                                              ^~~~~~~~~~~~~~~~~~~~~~
      |                                              Hypnos::VALUE_MATED_IN_MAX_PLY
types.h:152:17: note: 'Hypnos::VALUE_MATED_IN_MAX_PLY' declared here
  152 | constexpr Value VALUE_MATED_IN_MAX_PLY = -VALUE_MATE_IN_MAX_PLY;
      |                 ^~~~~~~~~~~~~~~~~~~~~~
search.cpp:666:19: error: 'struct {anonymous}::Skill' has no member named 'pick_best'
  666 |             skill.pick_best(multiPV);
      |                   ^~~~~~~~~
search.cpp:669:14: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  669 |         for (Thread* th : Threads)
      |              ^~~~~~
      |              Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:669:25: error: found ':' in nested-name-specifier, expected '::'
  669 |         for (Thread* th : Threads)
      |                         ^
      |                         ::
search.cpp:669:22: error: 'th' has not been declared
  669 |         for (Thread* th : Threads)
      |                      ^~
search.cpp:676:9: error: expected primary-expression before 'if'
  676 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ^~
search.cpp:673:10: error: expected ';' before 'if'
  673 |         }
      |          ^
      |          ;
......
  676 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ~~
search.cpp:676:9: error: expected primary-expression before 'if'
  676 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ^~
search.cpp:673:10: error: expected ')' before 'if'
  673 |         }
      |          ^
      |          )
......
  676 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ~~
search.cpp:669:13: note: to match this '('
  669 |         for (Thread* th : Threads)
      |             ^
search.cpp:684:32: error: 'lastBestMoveDepth' was not declared in this scope
  684 |             timeReduction    = lastBestMoveDepth + 8 < completedDepth ? 1.495 : 0.687;
      |                                ^~~~~~~~~~~~~~~~~
search.cpp:684:56: error: 'completedDepth' was not declared in this scope
  684 |             timeReduction    = lastBestMoveDepth + 8 < completedDepth ? 1.495 : 0.687;
      |                                                        ^~~~~~~~~~~~~~
search.cpp:689:32: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  689 |             double totalTime = Time.optimum() * fallingEval * reduction * bestMoveInstability * EvalLevel[el];
      |                                ^~~~
      |                                Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
search.cpp:723:50: error: 'struct {anonymous}::Skill' has no member named 'best'
  723 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                  ^~~~
search.cpp:723:63: error: 'struct {anonymous}::Skill' has no member named 'best'
  723 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                               ^~~~
search.cpp:723:76: error: 'struct {anonymous}::Skill' has no member named 'pick_best'
  723 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                                            ^~~~~~~~~
search.cpp: At global scope:
search.cpp:731:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  731 | Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, bool cutNode) {
      | ^~~~~
      | pvalueW
search.cpp:1678:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1678 | Value qsearch(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth) {
      | ^~~~~
      | pvalueW
search.cpp:1979:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1979 | Value value_to_tt(Value v, int ply) {
      | ^~~~~
      | pvalueW
search.cpp:1992:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1992 | Value value_from_tt(Value v, int ply, int r50c) {
      | ^~~~~
      | pvalueW
search.cpp:2030:6: error: variable or field 'update_pv' declared void
 2030 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |      ^~~~~~~~~
search.cpp:2030:16: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2030 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |                ^~~~
      |                Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:2030:22: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
 2030 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |                      ^~
      |                      Hypnos::UCI::pv
uci.h:85:13: note: 'Hypnos::UCI::pv' declared here
   85 | std::string pv(const Position& pos, Depth depth);
      |             ^~
search.cpp:2030:26: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2030 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |                          ^~~~
      |                          Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:2030:37: error: expected primary-expression before 'const'
 2030 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |                                     ^~~~~
search.cpp:2039:29: error: 'Position' does not name a type
 2039 | void update_all_stats(const Position& pos,
      |                             ^~~~~~~~
search.cpp:2040:23: error: 'Stack' has not been declared
 2040 |                       Stack*          ss,
      |                       ^~~~~
search.cpp:2041:23: error: 'Move' has not been declared
 2041 |                       Move            bestMove,
      |                       ^~~~
search.cpp:2042:23: error: 'Value' has not been declared
 2042 |                       Value           bestValue,
      |                       ^~~~~
search.cpp:2043:23: error: 'Value' has not been declared
 2043 |                       Value           beta,
      |                       ^~~~~
search.cpp:2044:23: error: 'Square' has not been declared
 2044 |                       Square          prevSq,
      |                       ^~~~~~
search.cpp:2045:23: error: 'Move' has not been declared
 2045 |                       Move*           quietsSearched,
      |                       ^~~~
search.cpp:2047:23: error: 'Move' has not been declared
 2047 |                       Move*           capturesSearched,
      |                       ^~~~
search.cpp:2049:23: error: 'Depth' has not been declared
 2049 |                       Depth           depth) {
      |                       ^~~~~
search.cpp: In function 'void {anonymous}::update_all_stats(const int&, int*, int, int, int, int, int*, int, int*, int, int)':
search.cpp:2051:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
 2051 |     Color                  us             = pos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:2052:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
 2052 |     Thread*                thisThread     = pos.this_thread();
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:2052:28: error: 'thisThread' was not declared in this scope; did you mean 'ExitThread'?
 2052 |     Thread*                thisThread     = pos.this_thread();
      |                            ^~~~~~~~~~
      |                            ExitThread
search.cpp:2052:49: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2052 |     Thread*                thisThread     = pos.this_thread();
      |                                                 ^~~~~~~~~~~
search.cpp:2053:5: error: 'CapturePieceToHistory' was not declared in this scope; did you mean 'Hypnos::CapturePieceToHistory'?
 2053 |     CapturePieceToHistory& captureHistory = thisThread->captureHistory;
      |     ^~~~~~~~~~~~~~~~~~~~~
      |     Hypnos::CapturePieceToHistory
movepick.h:126:7: note: 'Hypnos::CapturePieceToHistory' declared here
  126 | using CapturePieceToHistory = Stats<int16_t, 10692, PIECE_NB, SQUARE_NB, PIECE_TYPE_NB>;
      |       ^~~~~~~~~~~~~~~~~~~~~
search.cpp:2053:28: error: 'captureHistory' was not declared in this scope
 2053 |     CapturePieceToHistory& captureHistory = thisThread->captureHistory;
      |                            ^~~~~~~~~~~~~~
search.cpp:2054:5: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
 2054 |     Piece                  moved_piece    = pos.moved_piece(bestMove);
      |     ^~~~~
      |     Hypnos::Piece
types.h:179:6: note: 'Hypnos::Piece' declared here
  179 | enum Piece {
      |      ^~~~~
search.cpp:2055:5: error: 'PieceType' was not declared in this scope; did you mean 'Hypnos::PieceType'?
 2055 |     PieceType              captured;
      |     ^~~~~~~~~
      |     Hypnos::PieceType
types.h:167:6: note: 'Hypnos::PieceType' declared here
  167 | enum PieceType {
      |      ^~~~~~~~~
search.cpp:2057:36: error: '{anonymous}::stat_bonus' cannot be used as a function
 2057 |     int quietMoveBonus = stat_bonus(depth + 1);
      |                          ~~~~~~~~~~^~~~~~~~~~~
search.cpp:2058:36: error: '{anonymous}::stat_malus' cannot be used as a function
 2058 |     int quietMoveMalus = stat_malus(depth);
      |                          ~~~~~~~~~~^~~~~~~
search.cpp:2060:14: error: request for member 'capture_stage' in 'pos', which is of non-class type 'const int'
 2060 |     if (!pos.capture_stage(bestMove))
      |              ^~~~~~~~~~~~~
search.cpp:2063:64: error: '{anonymous}::stat_bonus' cannot be used as a function
 2063 |                                                    : stat_bonus(depth);  // smaller bonus
      |                                                      ~~~~~~~~~~^~~~~~~
search.cpp:2068:22: error: 'pawn_structure_index' was not declared in this scope; did you mean 'Hypnos::pawn_structure_index'?
 2068 |         int pIndex = pawn_structure_index(pos);
      |                      ^~~~~~~~~~~~~~~~~~~~
      |                      Hypnos::pawn_structure_index
movepick.h:53:12: note: 'Hypnos::pawn_structure_index' declared here
   53 | inline int pawn_structure_index(const Position& pos) {
      |            ^~~~~~~~~~~~~~~~~~~~
search.cpp:2069:33: error: 'moved_piece' was not declared in this scope
 2069 | thisThread->pawnHistory[pIndex][moved_piece][bestMove.to_sq()] << quietMoveBonus;
      |                                 ^~~~~~~~~~~
search.cpp:2069:55: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2069 | thisThread->pawnHistory[pIndex][moved_piece][bestMove.to_sq()] << quietMoveBonus;
      |                                                       ^~~~~
search.cpp:2074:43: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2074 |                 ->pawnHistory[pIndex][pos.moved_piece(quietsSearched[i])][quietsSearched[i].to_sq()]
      |                                           ^~~~~~~~~~~
search.cpp:2074:93: error: request for member 'to_sq' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2074 |                 ->pawnHistory[pIndex][pos.moved_piece(quietsSearched[i])][quietsSearched[i].to_sq()]
      |                                                                                             ^~~~~
search.cpp:2077:37: error: 'us' was not declared in this scope; did you mean 'ss'?
 2077 |             thisThread->mainHistory[us][quietsSearched[i].from_to()] << -quietMoveMalus;
      |                                     ^~
      |                                     ss
search.cpp:2077:59: error: request for member 'from_to' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2077 |             thisThread->mainHistory[us][quietsSearched[i].from_to()] << -quietMoveMalus;
      |                                                           ^~~~~~~
search.cpp:2078:51: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2078 |             update_continuation_histories(ss, pos.moved_piece(quietsSearched[i]),
      |                                                   ^~~~~~~~~~~
search.cpp:2079:61: error: request for member 'to_sq' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2079 |                                           quietsSearched[i].to_sq(), -quietMoveMalus);
      |                                                             ^~~~~
search.cpp:2078:13: error: 'update_continuation_histories' was not declared in this scope
 2078 |             update_continuation_histories(ss, pos.moved_piece(quietsSearched[i]),
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2085:9: error: 'captured' was not declared in this scope
 2085 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |         ^~~~~~~~
search.cpp:2085:32: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2085 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |                                ^~~~~~~~
search.cpp:2085:50: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2085 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |                                                  ^~~~~
search.cpp:2085:20: error: 'type_of' was not declared in this scope; did you mean 'Hypnos::type_of'?
 2085 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |                    ^~~~~~~
      |                    Hypnos::type_of
types.h:383:21: note: 'Hypnos::type_of' declared here
  383 | constexpr PieceType type_of(Piece pc) { return PieceType(pc & 7); }
      |                     ^~~~~~~
search.cpp:2086:24: error: 'moved_piece' was not declared in this scope
 2086 |         captureHistory[moved_piece][bestMove.to_sq()][captured] << quietMoveBonus;
      |                        ^~~~~~~~~~~
search.cpp:2086:46: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2086 |         captureHistory[moved_piece][bestMove.to_sq()][captured] << quietMoveBonus;
      |                                              ^~~~~
search.cpp:2091:19: error: 'SQ_NONE' was not declared in this scope; did you mean 'Hypnos::SQ_NONE'?
 2091 |     if (prevSq != SQ_NONE
      |                   ^~~~~~~
      |                   Hypnos::SQ_NONE
types.h:277:5: note: 'Hypnos::SQ_NONE' declared here
  277 |     SQ_NONE,
      |     ^~~~~~~
search.cpp:2092:23: error: request for member 'moveCount' in '*(ss + -4)', which is of non-class type 'int'
 2092 |         && ((ss - 1)->moveCount == 1 + (ss - 1)->ttHit
      |                       ^~~~~~~~~
search.cpp:2092:50: error: request for member 'ttHit' in '*(ss + -4)', which is of non-class type 'int'
 2092 |         && ((ss - 1)->moveCount == 1 + (ss - 1)->ttHit
      |                                                  ^~~~~
search.cpp:2093:27: error: request for member 'currentMove' in '*(ss + -4)', which is of non-class type 'int'
 2093 |             || ((ss - 1)->currentMove == (ss - 1)->killers[0]))
      |                           ^~~~~~~~~~~
search.cpp:2093:52: error: request for member 'killers' in '*(ss + -4)', which is of non-class type 'int'
 2093 |             || ((ss - 1)->currentMove == (ss - 1)->killers[0]))
      |                                                    ^~~~~~~
search.cpp:2094:17: error: request for member 'captured_piece' in 'pos', which is of non-class type 'const int'
 2094 |         && !pos.captured_piece())
      |                 ^~~~~~~~~~~~~~
search.cpp:2095:51: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2095 |         update_continuation_histories(ss - 1, pos.piece_on(prevSq), prevSq, -quietMoveMalus);
      |                                                   ^~~~~~~~
search.cpp:2095:9: error: 'update_continuation_histories' was not declared in this scope
 2095 |         update_continuation_histories(ss - 1, pos.piece_on(prevSq), prevSq, -quietMoveMalus);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2100:9: error: 'moved_piece' was not declared in this scope
 2100 |         moved_piece = pos.moved_piece(capturesSearched[i]);
      |         ^~~~~~~~~~~
search.cpp:2100:27: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2100 |         moved_piece = pos.moved_piece(capturesSearched[i]);
      |                           ^~~~~~~~~~~
search.cpp:2101:9: error: 'captured' was not declared in this scope
 2101 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |         ^~~~~~~~
search.cpp:2101:35: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2101 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |                                   ^~~~~~~~
search.cpp:2101:64: error: request for member 'to_sq' in '*(capturesSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2101 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |                                                                ^~~~~
search.cpp:2101:23: error: 'type_of' was not declared in this scope; did you mean 'Hypnos::type_of'?
 2101 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |                       ^~~~~~~
      |                       Hypnos::type_of
types.h:383:21: note: 'Hypnos::type_of' declared here
  383 | constexpr PieceType type_of(Piece pc) { return PieceType(pc & 7); }
      |                     ^~~~~~~
search.cpp:2102:57: error: request for member 'to_sq' in '*(capturesSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2102 |         captureHistory[moved_piece][capturesSearched[i].to_sq()][captured] << -quietMoveMalus;
      |                                                         ^~~~~
search.cpp: At global scope:
search.cpp:2109:6: error: variable or field 'update_continuation_histories' declared void
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2109:36: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                    ^~~~~
      |                                    Hypnos::Search::Stack
search.h:39:8: note: 'Hypnos::Search::Stack' declared here
   39 | struct Stack {
      |        ^~~~~
search.cpp:2109:43: error: 'ss' was not declared in this scope
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                           ^~
search.cpp:2109:47: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                               ^~~~~
      |                                               Hypnos::Piece
types.h:179:6: note: 'Hypnos::Piece' declared here
  179 | enum Piece {
      |      ^~~~~
search.cpp:2109:57: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                                         ^~~~~~
      |                                                         Hypnos::Square
types.h:212:6: note: 'Hypnos::Square' declared here
  212 | enum Square : int {
      |      ^~~~~~
search.cpp:2109:68: error: expected primary-expression before 'int'
 2109 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                                                    ^~~
search.cpp:2125:31: error: 'Position' does not name a type
 2125 | void update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus) {
      |                               ^~~~~~~~
search.cpp:2125:46: error: 'Stack' has not been declared
 2125 | void update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus) {
      |                                              ^~~~~
search.cpp:2125:57: error: 'Move' has not been declared
 2125 | void update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus) {
      |                                                         ^~~~
search.cpp: In function 'void {anonymous}::update_quiet_stats(const int&, int*, int, int)':
search.cpp:2128:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2128 |     if (ss->killers[0] != move)
      |             ^~~~~~~
search.cpp:2130:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2130 |         ss->killers[1] = ss->killers[0];
      |             ^~~~~~~
search.cpp:2130:30: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2130 |         ss->killers[1] = ss->killers[0];
      |                              ^~~~~~~
search.cpp:2131:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2131 |         ss->killers[0] = move;
      |             ^~~~~~~
search.cpp:2134:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
 2134 |     Color   us         = pos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:2135:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
 2135 |     Thread* thisThread = pos.this_thread();
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:2135:13: error: 'thisThread' was not declared in this scope; did you mean 'ExitThread'?
 2135 |     Thread* thisThread = pos.this_thread();
      |             ^~~~~~~~~~
      |             ExitThread
search.cpp:2135:30: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2135 |     Thread* thisThread = pos.this_thread();
      |                              ^~~~~~~~~~~
search.cpp:2136:29: error: 'us' was not declared in this scope; did you mean 'ss'?
 2136 |     thisThread->mainHistory[us][move.from_to()] << bonus;
      |                             ^~
      |                             ss
search.cpp:2136:38: error: request for member 'from_to' in 'move', which is of non-class type 'int'
 2136 |     thisThread->mainHistory[us][move.from_to()] << bonus;
      |                                      ^~~~~~~
search.cpp:2137:43: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2137 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |                                           ^~~~~~~~~~~
search.cpp:2137:67: error: request for member 'to_sq' in 'move', which is of non-class type 'int'
 2137 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |                                                                   ^~~~~
search.cpp:2137:5: error: 'update_continuation_histories' was not declared in this scope
 2137 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2140:20: error: request for member 'currentMove' in '*(ss + -4)', which is of non-class type 'int'
 2140 |     if (((ss - 1)->currentMove).is_ok())
      |                    ^~~~~~~~~~~
search.cpp:2142:9: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
 2142 |         Square prevSq                                          = ((ss - 1)->currentMove).to_sq();
      |         ^~~~~~
      |         Hypnos::Square
types.h:212:6: note: 'Hypnos::Square' declared here
  212 | enum Square : int {
      |      ^~~~~~
search.cpp:2143:38: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2143 |         thisThread->counterMoves[pos.piece_on(prevSq)][prevSq] = move;
      |                                      ^~~~~~~~
search.cpp:2143:47: error: 'prevSq' was not declared in this scope
 2143 |         thisThread->counterMoves[pos.piece_on(prevSq)][prevSq] = move;
      |                                               ^~~~~~
search.cpp: At global scope:
search.cpp:2149:1: error: 'Move' does not name a type
 2149 | Move Skill::pick_best(size_t multiPV) {
      | ^~~~
search.cpp:2185:6: error: 'MainThread' has not been declared
 2185 | void MainThread::check_time() {
      |      ^~~~~~~~~~
search.cpp:2185:6: warning: no previous declaration for 'void check_time()' [-Wmissing-declarations]
search.cpp: In function 'void check_time()':
search.cpp:2187:11: error: 'callsCnt' was not declared in this scope
 2187 |     if (--callsCnt > 0)
      |           ^~~~~~~~
search.cpp:2191:5: error: 'callsCnt' was not declared in this scope
 2191 |     callsCnt = Limits.nodes ? std::min(512, int(Limits.nodes / 1024)) : 512;
      |     ^~~~~~~~
search.cpp:2191:16: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
 2191 |     callsCnt = Limits.nodes ? std::min(512, int(Limits.nodes / 1024)) : 512;
      |                ^~~~~~
      |                Hypnos::Search::Limits
search.h:106:19: note: 'Hypnos::Search::Limits' declared here
  106 | extern LimitsType Limits;
      |                   ^~~~~~
search.cpp:2193:12: error: 'TimePoint' does not name a type
 2193 |     static TimePoint lastInfoTime = now();
      |            ^~~~~~~~~
search.cpp:2195:5: error: 'TimePoint' was not declared in this scope; did you mean 'Hypnos::TimePoint'?
 2195 |     TimePoint elapsed = Time.elapsed();
      |     ^~~~~~~~~
      |     Hypnos::TimePoint
misc.h:66:7: note: 'Hypnos::TimePoint' declared here
   66 | using TimePoint = std::chrono::milliseconds::rep;  // A value in milliseconds
      |       ^~~~~~~~~
search.cpp:2196:14: error: expected ';' before 'tick'
 2196 |     TimePoint tick    = Limits.startTime + elapsed;
      |              ^~~~~
      |              ;
search.cpp:2198:9: error: 'tick' was not declared in this scope
 2198 |     if (tick - lastInfoTime >= 1000)
      |         ^~~~
search.cpp:2198:16: error: 'lastInfoTime' was not declared in this scope
 2198 |     if (tick - lastInfoTime >= 1000)
      |                ^~~~~~~~~~~~
search.cpp:2201:9: error: 'dbg_print' was not declared in this scope; did you mean 'Hypnos::dbg_print'?
 2201 |         dbg_print();
      |         ^~~~~~~~~
      |         Hypnos::dbg_print
misc.h:64:6: note: 'Hypnos::dbg_print' declared here
   64 | void dbg_print();
      |      ^~~~~~~~~
search.cpp:2205:9: error: 'ponder' was not declared in this scope
 2205 |     if (ponder)
      |         ^~~~~~
search.cpp:2208:43: error: 'elapsed' was not declared in this scope
 2208 |     if ((Limits.use_time_management() && (elapsed > Time.maximum() || stopOnPonderhit))
      |                                           ^~~~~~~
search.cpp:2208:53: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
 2208 |     if ((Limits.use_time_management() && (elapsed > Time.maximum() || stopOnPonderhit))
      |                                                     ^~~~
      |                                                     Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
search.cpp:2208:71: error: 'stopOnPonderhit' was not declared in this scope
 2208 |     if ((Limits.use_time_management() && (elapsed > Time.maximum() || stopOnPonderhit))
      |                                                                       ^~~~~~~~~~~~~~~
search.cpp:2210:29: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
 2210 |         || (Limits.nodes && Threads.nodes_searched() >= uint64_t(Limits.nodes)))
      |                             ^~~~~~~
      |                             Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp: At global scope:
search.cpp:2217:8: error: 'UCI' has not been declared
 2217 | string UCI::pv(const Position& pos, Depth depth) {
      |        ^~~
search.cpp:2217:22: error: 'Position' does not name a type
 2217 | string UCI::pv(const Position& pos, Depth depth) {
      |                      ^~~~~~~~
search.cpp:2217:37: error: 'Depth' has not been declared
 2217 | string UCI::pv(const Position& pos, Depth depth) {
      |                                     ^~~~~
search.cpp:2217:8: warning: no previous declaration for 'std::string pv(const int&, int)' [-Wmissing-declarations]
 2217 | string UCI::pv(const Position& pos, Depth depth) {
      |        ^~~
search.cpp: In function 'std::string pv(const int&, int)':
search.cpp:2220:5: error: 'TimePoint' was not declared in this scope; did you mean 'Hypnos::TimePoint'?
 2220 |     TimePoint         elapsed       = Time.elapsed() + 1;
      |     ^~~~~~~~~
      |     Hypnos::TimePoint
misc.h:66:7: note: 'Hypnos::TimePoint' declared here
   66 | using TimePoint = std::chrono::milliseconds::rep;  // A value in milliseconds
      |       ^~~~~~~~~
search.cpp:2221:11: error: 'RootMoves' does not name a type
 2221 |     const RootMoves&  rootMoves     = pos.this_thread()->rootMoves;
      |           ^~~~~~~~~
search.cpp:2222:43: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2222 |     size_t            pvIdx         = pos.this_thread()->pvIdx;
      |                                           ^~~~~~~~~~~
search.cpp:2223:55: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
 2223 |     size_t            multiPV       = std::min(size_t(Options["MultiPV"]), rootMoves.size());
      |                                                       ^~~~~~~
      |                                                       Hypnos::Options
uci.h:91:24: note: 'Hypnos::Options' declared here
   91 | extern UCI::OptionsMap Options;
      |                        ^~~~~~~
search.cpp:2223:76: error: 'rootMoves' was not declared in this scope
 2223 |     size_t            multiPV       = std::min(size_t(Options["MultiPV"]), rootMoves.size());
      |                                                                            ^~~~~~~~~
search.cpp:2224:39: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
 2224 |     uint64_t          nodesSearched = Threads.nodes_searched();
      |                                       ^~~~~~~
      |                                       Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:2229:47: error: 'VALUE_INFINITE' was not declared in this scope; did you mean 'Hypnos::VALUE_INFINITE'?
 2229 |         bool updated = rootMoves[i].score != -VALUE_INFINITE;
      |                                               ^~~~~~~~~~~~~~
      |                                               Hypnos::VALUE_INFINITE
types.h:148:17: note: 'Hypnos::VALUE_INFINITE' declared here
  148 | constexpr Value VALUE_INFINITE = 32001;
      |                 ^~~~~~~~~~~~~~
search.cpp:2234:9: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
 2234 |         Depth d = updated ? depth : std::max(1, depth - 1);
      |         ^~~~~
      |         Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:2235:9: error: 'Value' was not declared in this scope; did you mean 'Hypnos::Value'?
 2235 |         Value v = updated ? rootMoves[i].uciScore : rootMoves[i].previousScore;
      |         ^~~~~
      |         Hypnos::Value
types.h:143:7: note: 'Hypnos::Value' declared here
  143 | using Value = int;
      |       ^~~~~
search.cpp:2237:13: error: 'v' was not declared in this scope
 2237 |         if (v == -VALUE_INFINITE)
      |             ^
search.cpp:2238:17: error: 'VALUE_ZERO' was not declared in this scope; did you mean 'Hypnos::VALUE_ZERO'?
 2238 |             v = VALUE_ZERO;
      |                 ^~~~~~~~~~
      |                 Hypnos::VALUE_ZERO
types.h:145:17: note: 'Hypnos::VALUE_ZERO' declared here
  145 | constexpr Value VALUE_ZERO     = 0;
      |                 ^~~~~~~~~~
search.cpp:2240:44: error: 'v' was not declared in this scope
 2240 |         bool tb = TB::RootInTB && std::abs(v) <= VALUE_TB;
      |                                            ^
search.cpp:2240:50: error: 'VALUE_TB' was not declared in this scope; did you mean 'Hypnos::VALUE_TB'?
 2240 |         bool tb = TB::RootInTB && std::abs(v) <= VALUE_TB;
      |                                                  ^~~~~~~~
      |                                                  Hypnos::VALUE_TB
types.h:154:17: note: 'Hypnos::VALUE_TB' declared here
  154 | constexpr Value VALUE_TB                 = VALUE_MATE_IN_MAX_PLY - 1;
      |                 ^~~~~~~~
search.cpp:2247:28: error: 'd' was not declared in this scope
 2247 |            << " depth " << d << " seldepth " << rootMoves[i].selDepth << " multipv " << i + 1
      |                            ^
search.cpp:2248:28: error: 'UCI' has not been declared
 2248 |            << " score " << UCI::value(v);
      |                            ^~~
search.cpp:2251:19: error: 'UCI' has not been declared
 2251 |             ss << UCI::wdl(v, pos.game_ply());
      |                   ^~~
search.cpp:2251:35: error: request for member 'game_ply' in 'pos', which is of non-class type 'const int'
 2251 |             ss << UCI::wdl(v, pos.game_ply());
      |                                   ^~~~~~~~
search.cpp:2258:79: error: 'elapsed' was not declared in this scope
 2258 |         ss << " nodes " << nodesSearched << " nps " << nodesSearched * 1000 / elapsed
      |                                                                               ^~~~~~~
search.cpp:2259:31: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
 2259 |            << " hashfull " << TT.hashfull() << " tbhits " << tbHits << " time " << elapsed << " pv";
      |                               ^~
      |                               Hypnos::TT
tt.h:106:27: note: 'Hypnos::TT' declared here
  106 | extern TranspositionTable TT;
      |                           ^~
search.cpp:2261:14: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2261 |         for (Move m : rootMoves[i].pv)
      |              ^~~~
      |              Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:2263:5: error: expected primary-expression before '}' token
 2263 |     }
      |     ^
search.cpp:2262:58: error: expected ';' before '}' token
 2262 |             ss << " " << UCI::move(m, pos.is_chess960());
      |                                                          ^
      |                                                          ;
 2263 |     }
      |     ~                                                     
search.cpp:2263:5: error: expected primary-expression before '}' token
 2263 |     }
      |     ^
search.cpp:2262:58: error: expected ')' before '}' token
 2262 |             ss << " " << UCI::move(m, pos.is_chess960());
      |                                                          ^
      |                                                          )
 2263 |     }
      |     ~                                                     
search.cpp:2261:13: note: to match this '('
 2261 |         for (Move m : rootMoves[i].pv)
      |             ^
search.cpp:2263:5: error: expected primary-expression before '}' token
 2263 |     }
      |     ^
search.cpp: At global scope:
search.cpp:2273:6: error: 'RootMove' has not been declared
 2273 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |      ^~~~~~~~
search.cpp:2273:39: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
 2273 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |                                       ^~~~~~~~
      |                                       Hypnos::Position
position.h:80:7: note: 'Hypnos::Position' declared here
   80 | class Position {
      |       ^~~~~~~~
search.cpp:2273:49: error: 'pos' was not declared in this scope; did you mean 'pow'?
 2273 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |                                                 ^~~
      |                                                 pow
search.cpp:2299:6: error: variable or field 'rank_root_moves' declared void
 2299 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |      ^~~~~~~~~~
search.cpp:2299:34: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
 2299 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                  ^~~~~~~~
      |                                  Hypnos::Position
position.h:80:7: note: 'Hypnos::Position' declared here
   80 | class Position {
      |       ^~~~~~~~
search.cpp:2299:44: error: 'pos' was not declared in this scope; did you mean 'pow'?
 2299 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                            ^~~
      |                                            pow
search.cpp:2299:57: error: 'RootMoves' is not a member of 'Search'; did you mean 'Hypnos::Search::RootMoves'?
 2299 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                                         ^~~~~~~~~
search.h:83:7: note: 'Hypnos::Search::RootMoves' declared here
   83 | using RootMoves = std::vector<RootMove>;
      |       ^~~~~~~~~
search.cpp:2299:68: error: 'rootMoves' was not declared in this scope
 2299 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                                                    ^~~~~~~~~
search.cpp:2346:1: error: expected declaration before '}' token
 2346 | }  // namespace Hypnos
      | ^
search.cpp:2039:6: warning: 'void {anonymous}::update_all_stats(const int&, int*, int, int, int, int, int*, int, int*, int, int)' defined but not used [-Wunused-function]
 2039 | void update_all_stats(const Position& pos,
      |      ^~~~~~~~~~~~~~~~
make[1]: *** [<builtin>: search.o] Error 1
make[1]: Leaving directory '/c/Users/BigZer/AppData/Local/Temp/tmpbrqlwbem/HypnoS/HypnoS-tmp/src'
make: *** [Makefile:796: build] Error 2