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/tmp0o_qq7pr/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:62:1: error: 'LimitsType' does not name a type
   62 | LimitsType Limits;
      | ^~~~~~~~~~
search.cpp:70:1: error: 'Depth' does not name a type
   70 | Depth ProbeDepth;
      | ^~~~~
search.cpp:76:7: error: 'Eval' has not been declared
   76 | using Eval::evaluate;
      |       ^~~~
search.cpp:92:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
   92 | Value futility_margin(Depth d, bool noTtCutNode, bool improving, bool oppWorsening) {
      | ^~~~~
      | pvalueW
search.cpp:101:16: error: 'MAX_MOVES' was not declared in this scope; did you mean 'Hypnos::MAX_MOVES'?
  101 | 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:103:1: error: 'Depth' does not name a type
  103 | Depth reduction(bool i, Depth d, int mn, int delta, int rootDelta) {
      | ^~~~~
search.cpp:109:51: error: 'Depth' has not been declared
  109 | constexpr int futility_move_count(bool improving, Depth depth) {
      |                                                   ^~~~~
search.cpp:114:11: error: 'Value' does not name a type; did you mean 'pvalueW'?
  114 | constexpr Value to_static_eval(const Value v) {
      |           ^~~~~
      |           pvalueW
search.cpp:119:16: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  119 | int stat_bonus(Depth d) { return std::clamp(245 * d - 320, 0, 1296); }
      |                ^~~~~
      |                Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:122:16: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  122 | int stat_malus(Depth d) { return (d < 4 ? 554 * d - 303 : 1203); }
      |                ^~~~~
      |                Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:125:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  125 | Value value_draw(const Thread* thisThread) {
      | ^~~~~
      | pvalueW
search.cpp:146:23: error: 'Depth' has not been declared
  146 |     bool time_to_pick(Depth depth) const { return depth == 1 + int(level); }
      |                       ^~~~~
search.cpp:147:5: error: 'Move' does not name a type
  147 |     Move pick_best(size_t multiPV);
      |     ^~~~
search.cpp:150:5: error: 'Move' does not name a type
  150 |     Move   best = Move::none();
      |     ^~~~
search.cpp:156:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  156 | Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, bool cutNode);
      | ^~~~~
      | pvalueW
search.cpp:159:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  159 | Value qsearch(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth = 0);
      | ^~~~~
      | pvalueW
search.cpp:161:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  161 | Value value_to_tt(Value v, int ply);
      | ^~~~~
      | pvalueW
search.cpp:162:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  162 | Value value_from_tt(Value v, int ply, int r50c);
      | ^~~~~
      | pvalueW
search.cpp:163:7: error: variable or field 'update_pv' declared void
  163 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |       ^~~~~~~~~
search.cpp:163:17: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  163 | 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:163:23: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
  163 | 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:163:27: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  163 | 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:163:38: error: expected primary-expression before 'const'
  163 | void  update_pv(Move* pv, Move move, const Move* childPv);
      |                                      ^~~~~
search.cpp:164:7: error: variable or field 'update_continuation_histories' declared void
  164 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:164:37: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
  164 | 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:164:44: error: 'ss' was not declared in this scope
  164 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                            ^~
search.cpp:164:48: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
  164 | 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:164:58: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
  164 | 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:164:69: error: expected primary-expression before 'int'
  164 | void  update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus);
      |                                                                     ^~~
search.cpp:165:32: error: 'Position' does not name a type
  165 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                ^~~~~~~~
search.cpp:165:47: error: 'Stack' has not been declared
  165 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                               ^~~~~
search.cpp:165:58: error: 'Move' has not been declared
  165 | void  update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus);
      |                                                          ^~~~
search.cpp:166:30: error: 'Position' does not name a type
  166 | void  update_all_stats(const Position& pos,
      |                              ^~~~~~~~
search.cpp:167:24: error: 'Stack' has not been declared
  167 |                        Stack*          ss,
      |                        ^~~~~
search.cpp:168:24: error: 'Move' has not been declared
  168 |                        Move            bestMove,
      |                        ^~~~
search.cpp:169:24: error: 'Value' has not been declared
  169 |                        Value           bestValue,
      |                        ^~~~~
search.cpp:170:24: error: 'Value' has not been declared
  170 |                        Value           beta,
      |                        ^~~~~
search.cpp:171:24: error: 'Square' has not been declared
  171 |                        Square          prevSq,
      |                        ^~~~~~
search.cpp:172:24: error: 'Move' has not been declared
  172 |                        Move*           quietsSearched,
      |                        ^~~~
search.cpp:174:24: error: 'Move' has not been declared
  174 |                        Move*           capturesSearched,
      |                        ^~~~
search.cpp:176:24: error: 'Depth' has not been declared
  176 |                        Depth           depth);
      |                        ^~~~~
search.cpp:181:16: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
  181 | 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:181:26: error: 'pos' was not declared in this scope; did you mean 'pow'?
  181 | uint64_t perft(Position& pos, Depth depth) {
      |                          ^~~
      |                          pow
search.cpp:181:31: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  181 | uint64_t perft(Position& pos, Depth depth) {
      |                               ^~~~~
      |                               Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:181:42: error: expression list treated as compound expression in initializer [-fpermissive]
  181 | uint64_t perft(Position& pos, Depth depth) {
      |                                          ^
search.cpp:181:43: error: expected ';' before '{' token
  181 | uint64_t perft(Position& pos, Depth depth) {
      |                                           ^~
      |                                           ;
search.cpp:210:19: error: 'void Search::init()' should have been declared inside 'Search'
  210 | void Search::init() {
      |                   ^
search.cpp:210:6: warning: no previous declaration for 'void Search::init()' [-Wmissing-declarations]
  210 | void Search::init() {
      |      ^~~~~~
search.cpp: In function 'void Search::init()':
search.cpp:212:25: error: 'MAX_MOVES' was not declared in this scope; did you mean 'Hypnos::MAX_MOVES'?
  212 |     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:213:9: error: 'Reductions' was not declared in this scope
  213 |         Reductions[i] = int((20.37 + std::log(Threads.size()) / 2) * std::log(i));
      |         ^~~~~~~~~~
search.cpp:213:47: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  213 |         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:218:20: error: 'void Search::clear()' should have been declared inside 'Search'
  218 | void Search::clear() {
      |                    ^
search.cpp:218:6: warning: no previous declaration for 'void Search::clear()' [-Wmissing-declarations]
  218 | void Search::clear() {
      |      ^~~~~~
search.cpp: In function 'void Search::clear()':
search.cpp:220:5: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  220 |     Threads.main()->wait_for_search_finished();
      |     ^~~~~~~
      |     Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:222:5: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  222 |     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:223:5: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
  223 |     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:225:17: error: 'init' is not a member of 'Tablebases'
  225 |     Tablebases::init(Options["SyzygyPath"]);  // Free mapped files
      |                 ^~~~
search.cpp:225:17: note: suggested alternatives:
search.cpp:210:6: note:   'Search::init'
  210 | 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:225:22: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  225 |     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:234:6: error: 'MainThread' has not been declared
  234 | void MainThread::search() {
      |      ^~~~~~~~~~
search.cpp:234:6: warning: no previous declaration for 'void search()' [-Wmissing-declarations]
search.cpp: In function 'void search()':
search.cpp:236:9: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  236 |     if (Limits.perft)
      |         ^~~~~~
      |         Hypnos::Search::Limits
search.h:106:19: note: 'Hypnos::Search::Limits' declared here
  106 | extern LimitsType Limits;
      |                   ^~~~~~
search.cpp:238:9: error: 'nodes' was not declared in this scope
  238 |         nodes = perft<true>(rootPos, Limits.perft);
      |         ^~~~~
search.cpp:238:29: error: 'rootPos' was not declared in this scope
  238 |         nodes = perft<true>(rootPos, Limits.perft);
      |                             ^~~~~~~
search.cpp:238:50: error: '{anonymous}::perft<true>' cannot be used as a function
  238 |         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:239:9: note: in expansion of macro 'sync_cout'
  239 |         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:239:63: note: in expansion of macro 'sync_endl'
  239 |         sync_cout << "\nNodes searched: " << nodes << "\n" << sync_endl;
      |                                                               ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:246:11: error: 'Color' does not name a type
  246 |     const Color us = rootPos.side_to_move();
      |           ^~~~~
search.cpp:247:5: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  247 |     Time.init(Limits, us, rootPos.game_ply());
      |     ^~~~
      |     Hypnos::Time
timeman.h:50:23: note: 'Hypnos::Time' declared here
   50 | extern TimeManagement Time;
      |                       ^~~~
search.cpp:247:15: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  247 |     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:247:23: error: 'us' was not declared in this scope; did you mean 'u8'?
  247 |     Time.init(Limits, us, rootPos.game_ply());
      |                       ^~
      |                       u8
search.cpp:247:27: error: 'rootPos' was not declared in this scope
  247 |     Time.init(Limits, us, rootPos.game_ply());
      |                           ^~~~~~~
search.cpp:248:5: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
  248 |     TT.new_search();
      |     ^~
      |     Hypnos::TT
tt.h:106:27: note: 'Hypnos::TT' declared here
  106 | extern TranspositionTable TT;
      |                           ^~
search.cpp:249:15: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  249 |     variety = Options["Variety"];
      |               ^~~~~~~
      |               Hypnos::Options
uci.h:91:24: note: 'Hypnos::Options' declared here
   91 | extern UCI::OptionsMap Options;
      |                        ^~~~~~~
search.cpp:250:5: error: 'Eval' has not been declared
  250 |     Eval::NNUE::verify();
      |     ^~~~
search.cpp:251:5: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  251 |     Move bookMove = Move::none();
      |     ^~~~
      |     Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:255:9: error: 'rootMoves' was not declared in this scope
  255 |     if (rootMoves.empty())
      |         ^~~~~~~~~
search.cpp:257:32: error: 'Move' is not a class, namespace, or enumeration
  257 |         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:258:9: note: in expansion of macro 'sync_cout'
  258 |         sync_cout << "info depth 0 score "
      |         ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:259:22: error: 'UCI' has not been declared
  259 |                   << UCI::value(rootPos.checkers() ? -VALUE_MATE : VALUE_DRAW) << sync_endl;
      |                      ^~~
search.cpp:259:55: error: 'VALUE_MATE' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE'?
  259 |                   << 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:259:68: error: 'VALUE_DRAW' was not declared in this scope; did you mean 'Hypnos::VALUE_DRAW'?
  259 |                   << 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:259:83: note: in expansion of macro 'sync_endl'
  259 |                   << 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:264:17: error: 'ponder' was not declared in this scope
  264 |             && !ponder)
      |                 ^~~~~~
search.cpp:267:13: error: 'bookMove' was not declared in this scope
  267 |             bookMove = Book::probe(rootPos);
      |             ^~~~~~~~
search.cpp:267:24: error: 'Book' has not been declared
  267 |             bookMove = Book::probe(rootPos);
      |                        ^~~~
search.cpp:270:29: error: 'Move' is not a class, namespace, or enumeration
  270 |             if (bookMove == Move::none() && (bool) Options["Experience Book"]
      |                             ^~~~
search.cpp:274:47: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  274 |                 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:315:29: note: in expansion of macro 'sync_cout'
  315 |                             sync_cout << "info "
      |                             ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:318:55: error: 'UCI' has not been declared
  318 |                                       << " score " << UCI::value(it->first->value) << " nodes "
      |                                                       ^~~
search.cpp:321:52: error: 'UCI' has not been declared
  321 |                                       << " 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:322:42: note: in expansion of macro 'sync_endl'
  322 |                                       << sync_endl;
      |                                          ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:328:36: error: 'PRNG' does not name a type
  328 |                             static PRNG rng(now());
      |                                    ^~~~
search.cpp:331:48: error: 'rng' was not declared in this scope
  331 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                ^~~
search.cpp:331:65: error: expected primary-expression before '>' token
  331 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                                 ^
search.cpp:331:67: error: expected primary-expression before ')' token
  331 |                             bookMove = quality[rng.rand<uint32_t>()
      |                                                                   ^
search.cpp:343:29: error: 'Move' is not a class, namespace, or enumeration
  343 |             if (bookMove != Move::none()
      |                             ^~~~
search.cpp:348:22: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  348 |                 for (Thread* th : Threads)
      |                      ^~~~~~
      |                      Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:348:33: error: found ':' in nested-name-specifier, expected '::'
  348 |                 for (Thread* th : Threads)
      |                                 ^
      |                                 ::
search.cpp:348:30: error: 'th' has not been declared
  348 |                 for (Thread* th : Threads)
      |                              ^~
search.cpp:351:13: error: expected primary-expression before '}' token
  351 |             }
      |             ^
search.cpp:350:97: error: expected ';' before '}' token
  350 |                               *std::find(th->rootMoves.begin(), th->rootMoves.end(), bookMove));
      |                                                                                                 ^
      |                                                                                                 ;
  351 |             }
      |             ~                                                                                    
search.cpp:351:13: error: expected primary-expression before '}' token
  351 |             }
      |             ^
search.cpp:350:97: error: expected ')' before '}' token
  350 |                               *std::find(th->rootMoves.begin(), th->rootMoves.end(), bookMove));
      |                                                                                                 ^
      |                                                                                                 )
  351 |             }
      |             ~                                                                                    
search.cpp:348:21: note: to match this '('
  348 |                 for (Thread* th : Threads)
      |                     ^
search.cpp:351:13: error: expected primary-expression before '}' token
  351 |             }
      |             ^
search.cpp:355:13: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  355 |             Threads.start_searching();  // start non-main threads
      |             ^~~~~~~
      |             Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:356:13: error: 'Thread' has not been declared
  356 |             Thread::search();           // main thread start searching
      |             ^~~~~~
search.cpp:366:13: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  366 |     while (!Threads.stop && (ponder || Limits.infinite))
      |             ^~~~~~~
      |             Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:366:30: error: 'ponder' was not declared in this scope
  366 |     while (!Threads.stop && (ponder || Limits.infinite))
      |                              ^~~~~~
search.cpp:371:5: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  371 |     Threads.stop = true;
      |     ^~~~~~~
      |     Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:381:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  381 |     Thread* bestThread = this;
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:381:13: error: 'bestThread' was not declared in this scope; did you mean 'ExitThread'?
  381 |     Thread* bestThread = this;
      |             ^~~~~~~~~~
      |             ExitThread
search.cpp:381:26: error: invalid use of 'this' in non-member function
  381 |     Thread* bestThread = this;
      |                          ^~~~
search.cpp:386:12: error: 'rootMoves' was not declared in this scope
  386 |         && rootMoves[0].pv[0] != Move::none())
      |            ^~~~~~~~~
search.cpp:386:34: error: 'Move' is not a class, namespace, or enumeration
  386 |         && rootMoves[0].pv[0] != Move::none())
      |                                  ^~~~
search.cpp:402:13: error: 'Move' does not name a type
  402 |             Move  move;
      |             ^~~~
search.cpp:403:13: error: 'Depth' does not name a type
  403 |             Depth depth;
      |             ^~~~~
search.cpp:404:13: error: 'Value' does not name a type; did you mean 'pvalueW'?
  404 |             Value scoreSum;
      |             ^~~~~
      |             pvalueW
search.cpp:408:64: error: template argument 4 is invalid
  408 |         std::unordered_map<Move, UniqueMoveInfo, Move::MoveHash> uniqueMoves;
      |                                                                ^
search.cpp:408:64: error: template argument 5 is invalid
search.cpp:418:55: error: request for member 'find' in 'uniqueMoves', which is of non-class type 'int'
  418 |             auto           existingMove = uniqueMoves.find(thisMove.move);
      |                                                       ^~~~
search.cpp:418:69: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  418 |             auto           existingMove = uniqueMoves.find(thisMove.move);
      |                                                                     ^~~~
search.cpp:420:45: error: request for member 'end' in 'uniqueMoves', which is of non-class type 'int'
  420 |             if (existingMove == uniqueMoves.end())
      |                                             ^~~
search.cpp:422:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  422 |                 uniqueMoves[thisMove.move] = thisMove;
      |                                      ^~~~
search.cpp:427:26: error: 'struct search()::UniqueMoveInfo' has no member named 'depth'
  427 |             if (thisMove.depth > existingMove->second.depth)
      |                          ^~~~~
search.cpp:428:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  428 |                 uniqueMoves[thisMove.move] = thisMove;
      |                                      ^~~~
search.cpp:429:31: error: 'struct search()::UniqueMoveInfo' has no member named 'depth'
  429 |             else if (thisMove.depth == existingMove->second.depth)
      |                               ^~~~~
search.cpp:431:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  431 |                 uniqueMoves[thisMove.move].scoreSum += thisMove.scoreSum;
      |                                      ^~~~
search.cpp:431:65: error: 'struct search()::UniqueMoveInfo' has no member named 'scoreSum'
  431 |                 uniqueMoves[thisMove.move].scoreSum += thisMove.scoreSum;
      |                                                                 ^~~~~~~~
search.cpp:432:38: error: 'struct search()::UniqueMoveInfo' has no member named 'move'
  432 |                 uniqueMoves[thisMove.move].count++;
      |                                      ^~~~
search.cpp:437:41: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
  437 |         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:437:41: error: 'end' was not declared in this scope; did you mean 'std::end'?
  437 |         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:442:13: error: 'Utility' has not been declared
  442 |         if (Utility::is_game_decided(rootPos, bestThread->rootMoves[0].score))
      |             ^~~~~~~
search.cpp:449:5: error: 'bestPreviousScore' was not declared in this scope
  449 |     bestPreviousScore        = bestThread->rootMoves[0].score;
      |     ^~~~~~~~~~~~~~~~~
search.cpp:450:5: error: 'bestPreviousAverageScore' was not declared in this scope
  450 |     bestPreviousAverageScore = bestThread->rootMoves[0].averageScore;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:453:23: error: invalid use of 'this' in non-member function
  453 |     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:454:9: note: in expansion of macro 'sync_cout'
  454 |         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:454:22: error: 'UCI' has not been declared
  454 |         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:454:82: note: in expansion of macro 'sync_endl'
  454 |         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:456:5: note: in expansion of macro 'sync_cout'
  456 |     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:456:33: error: 'UCI' has not been declared
  456 |     sync_cout << "bestmove " << UCI::move(bestThread->rootMoves[0].pv[0], rootPos.is_chess960());
      |                                 ^~~
search.cpp:460:36: error: 'UCI' has not been declared
  460 |         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:462:18: note: in expansion of macro 'sync_endl'
  462 |     std::cout << sync_endl;
      |                  ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp: At global scope:
search.cpp:468:6: error: 'Thread' has not been declared
  468 | void Thread::search() {
      |      ^~~~~~
search.cpp:468:6: error: redefinition of 'void search()'
search.cpp:234:6: note: 'void search()' previously defined here
  234 | void MainThread::search() {
      |      ^~~~~~~~~~
search.cpp: In function 'void search()':
search.cpp:473:5: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
  473 |     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:474:5: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
  474 |     Move        pv[MAX_PLY + 1];
      |     ^~~~
      |     Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:475:5: error: 'Value' was not declared in this scope; did you mean 'Hypnos::Value'?
  475 |     Value       alpha, beta;
      |     ^~~~~
      |     Hypnos::Value
types.h:143:7: note: 'Hypnos::Value' declared here
  143 | using Value = int;
      |       ^~~~~
search.cpp:476:9: error: expected ';' before 'lastBestMove'
  476 |     Move        lastBestMove      = Move::none();
      |         ^       ~~~~~~~~~~~~
      |         ;
search.cpp:477:5: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
  477 |     Depth       lastBestMoveDepth = 0;
      |     ^~~~~
      |     Hypnos::Depth
types.h:200:7: note: 'Hypnos::Depth' declared here
  200 | using Depth = int;
      |       ^~~~~
search.cpp:478:5: error: 'MainThread' was not declared in this scope; did you mean 'Hypnos::MainThread'?
  478 |     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:478:17: error: 'mainThread' was not declared in this scope; did you mean 'OpenThread'?
  478 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |                 ^~~~~~~~~~
      |                 OpenThread
search.cpp:478:38: error: invalid use of 'this' in non-member function
  478 |     MainThread* mainThread        = (this == Threads.main() ? Threads.main() : nullptr);
      |                                      ^~~~
search.cpp:478:46: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
  478 |     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:480:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
  480 |     Color       us = rootPos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:483:17: error: 'ss' was not declared in this scope
  483 |     std::memset(ss - 7, 0, 10 * sizeof(Stack));
      |                 ^~
search.cpp:487:12: error: invalid use of 'this' in non-member function
  487 |           &this->continuationHistory[0][0][NO_PIECE][0];  // Use as a sentinel
      |            ^~~~
search.cpp:487:44: error: 'NO_PIECE' was not declared in this scope; did you mean 'Hypnos::NO_PIECE'?
  487 |           &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:488:32: error: 'VALUE_NONE' was not declared in this scope; did you mean 'Hypnos::VALUE_NONE'?
  488 |         (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:491:26: error: 'MAX_PLY' was not declared in this scope; did you mean 'Hypnos::MAX_PLY'?
  491 |     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:494:14: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
  494 |     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:496:5: error: 'bestValue' was not declared in this scope; did you mean 'GetGValue'?
  496 |     bestValue = -VALUE_INFINITE;
      |     ^~~~~~~~~
      |     GetGValue
search.cpp:496:18: error: 'VALUE_INFINITE' was not declared in this scope; did you mean 'Hypnos::VALUE_INFINITE'?
  496 |     bestValue = -VALUE_INFINITE;
      |                  ^~~~~~~~~~~~~~
      |                  Hypnos::VALUE_INFINITE
types.h:148:17: note: 'Hypnos::VALUE_INFINITE' declared here
  148 | constexpr Value VALUE_INFINITE = 32001;
      |                 ^~~~~~~~~~~~~~
search.cpp:502:44: error: 'VALUE_ZERO' was not declared in this scope; did you mean 'Hypnos::VALUE_ZERO'?
  502 |                 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:508:29: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
  508 |     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:516:33: error: 'rootMoves' was not declared in this scope
  516 |     multiPV = std::min(multiPV, rootMoves.size());
      |                                 ^~~~~~~~~
search.cpp:521:14: error: 'rootDepth' was not declared in this scope
  521 |     while (++rootDepth < MAX_PLY && !Threads.stop
      |              ^~~~~~~~~
search.cpp:521:26: error: 'MAX_PLY' was not declared in this scope; did you mean 'Hypnos::MAX_PLY'?
  521 |     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:522:17: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
  522 |            && !(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:530:14: error: 'RootMove' was not declared in this scope; did you mean 'Hypnos::Search::RootMove'?
  530 |         for (RootMove& rm : rootMoves)
      |              ^~~~~~~~
      |              Hypnos::Search::RootMove
search.h:60:8: note: 'Hypnos::Search::RootMove' declared here
   60 | struct RootMove {
      |        ^~~~~~~~
search.cpp:530:27: error: found ':' in nested-name-specifier, expected '::'
  530 |         for (RootMove& rm : rootMoves)
      |                           ^
      |                           ::
search.cpp:530:24: error: 'rm' has not been declared
  530 |         for (RootMove& rm : rootMoves)
      |                        ^~
search.cpp:534:9: error: 'pvLast' was not declared in this scope
  534 |         pvLast         = 0;
      |         ^~~~~~
search.cpp:534:27: error: expected ')' before ';' token
  534 |         pvLast         = 0;
      |                           ^
      |                           )
search.cpp:530:13: note: to match this '('
  530 |         for (RootMove& rm : rootMoves)
      |             ^
search.cpp:533:16: warning: unused variable 'pvFirst' [-Wunused-variable]
  533 |         size_t pvFirst = 0;
      |                ^~~~~~~
search.cpp:540:14: error: 'pvIdx' was not declared in this scope
  540 |         for (pvIdx = 0; pvIdx < multiPV && !Threads.stop; ++pvIdx)
      |              ^~~~~
search.cpp:542:26: error: 'pvLast' was not declared in this scope
  542 |             if (pvIdx == pvLast)
      |                          ^~~~~~
search.cpp:544:17: error: 'pvFirst' was not declared in this scope
  544 |                 pvFirst = pvLast;
      |                 ^~~~~~~
search.cpp:551:13: error: 'selDepth' was not declared in this scope
  551 |             selDepth = 0;
      |             ^~~~~~~~
search.cpp:565:18: error: expected ';' before 'avg'
  565 |             Value avg = rootMoves[pvIdx].averageScore;
      |                  ^~~~
      |                  ;
search.cpp:566:57: error: 'avg' was not declared in this scope
  566 |             delta     = Value(Hypnos::delta_base) + int(avg) * avg / Hypnos::delta_scale;
      |                                                         ^~~
search.cpp:567:13: error: 'alpha' was not declared in this scope; did you mean 'isalpha'?
  567 |             alpha     = std::max(avg - delta, -VALUE_INFINITE);
      |             ^~~~~
      |             isalpha
search.cpp:568:13: error: 'beta' was not declared in this scope; did you mean 'std::beta'?
  568 |             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:571:13: error: 'optimism' was not declared in this scope
  571 |             optimism[us]  = Hypnos::optimism_scale * avg / (std::abs(avg) + Hypnos::optimism_smooth);
      |             ^~~~~~~~
search.cpp:571:22: error: 'us' was not declared in this scope; did you mean 'u8'?
  571 |             optimism[us]  = Hypnos::optimism_scale * avg / (std::abs(avg) + Hypnos::optimism_smooth);
      |                      ^~
      |                      u8
search.cpp:582:22: error: expected ';' before 'adjustedDepth'
  582 |                 Depth adjustedDepth =
      |                      ^~~~~~~~~~~~~~
      |                      ;
search.cpp:584:37: error: 'search' is not a member of 'Hypnos'; did you mean 'Search'?
  584 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                     ^~~~~~
      |                                     Search
search.cpp:584:50: error: 'rootPos' was not declared in this scope
  584 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                                  ^~~~~~~
search.cpp:584:76: error: 'adjustedDepth' was not declared in this scope
  584 |                 bestValue = Hypnos::search<Root>(rootPos, ss, alpha, beta, adjustedDepth, false);
      |                                                                            ^~~~~~~~~~~~~
search.cpp:592:81: error: 'pvLast' was not declared in this scope
  592 |                 std::stable_sort(rootMoves.begin() + pvIdx, rootMoves.begin() + pvLast);
      |                                                                                 ^~~~~~
search.cpp:603:24: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  603 |                     && 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:604:21: note: in expansion of macro 'sync_cout'
  604 |                     sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                     ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:604:34: error: 'UCI' has not been declared
  604 |                     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:604:65: note: in expansion of macro 'sync_endl'
  604 |                     sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                                                 ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:631:50: error: 'pvFirst' was not declared in this scope
  631 |             std::stable_sort(rootMoves.begin() + pvFirst, rootMoves.begin() + pvIdx + 1);
      |                                                  ^~~~~~~
search.cpp:633:72: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  633 |             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:634:17: note: in expansion of macro 'sync_cout'
  634 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                 ^~~~~~~~~
misc.h:76:5: note: 'Hypnos::IO_LOCK' declared here
   76 |     IO_LOCK,
      |     ^~~~~~~
search.cpp:634:30: error: 'UCI' has not been declared
  634 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                              ^~~
search.cpp:634:38: error: 'rootPos' was not declared in this scope
  634 |                 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:634:61: note: in expansion of macro 'sync_endl'
  634 |                 sync_cout << UCI::pv(rootPos, rootDepth) << sync_endl;
      |                                                             ^~~~~~~~~
misc.h:77:5: note: 'Hypnos::IO_UNLOCK' declared here
   77 |     IO_UNLOCK
      |     ^~~~~~~~~
search.cpp:638:13: error: 'completedDepth' was not declared in this scope
  638 |             completedDepth = rootDepth;
      |             ^~~~~~~~~~~~~~
search.cpp:640:35: error: 'lastBestMove' was not declared in this scope
  640 |         if (rootMoves[0].pv[0] != lastBestMove)
      |                                   ^~~~~~~~~~~~
search.cpp:643:13: error: 'lastBestMoveDepth' was not declared in this scope
  643 |             lastBestMoveDepth = rootDepth;
      |             ^~~~~~~~~~~~~~~~~
search.cpp:651:40: error: 'VALUE_MATE_IN_MAX_PLY' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE_IN_MAX_PLY'?
  651 |             && ((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:652:21: error: 'VALUE_MATE' was not declared in this scope; did you mean 'Hypnos::VALUE_MATE'?
  652 |                  && 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:654:46: error: 'VALUE_MATED_IN_MAX_PLY' was not declared in this scope; did you mean 'Hypnos::VALUE_MATED_IN_MAX_PLY'?
  654 |                     && 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:660:19: error: 'struct {anonymous}::Skill' has no member named 'pick_best'
  660 |             skill.pick_best(multiPV);
      |                   ^~~~~~~~~
search.cpp:663:14: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
  663 |         for (Thread* th : Threads)
      |              ^~~~~~
      |              Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:663:25: error: found ':' in nested-name-specifier, expected '::'
  663 |         for (Thread* th : Threads)
      |                         ^
      |                         ::
search.cpp:663:22: error: 'th' has not been declared
  663 |         for (Thread* th : Threads)
      |                      ^~
search.cpp:670:9: error: expected primary-expression before 'if'
  670 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ^~
search.cpp:667:10: error: expected ';' before 'if'
  667 |         }
      |          ^
      |          ;
......
  670 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ~~
search.cpp:670:9: error: expected primary-expression before 'if'
  670 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ^~
search.cpp:667:10: error: expected ')' before 'if'
  667 |         }
      |          ^
      |          )
......
  670 |         if (Limits.use_time_management() && !Threads.stop && !mainThread->stopOnPonderhit)
      |         ~~
search.cpp:663:13: note: to match this '('
  663 |         for (Thread* th : Threads)
      |             ^
search.cpp:678:32: error: 'lastBestMoveDepth' was not declared in this scope
  678 |             timeReduction    = lastBestMoveDepth + 8 < completedDepth ? 1.495 : 0.687;
      |                                ^~~~~~~~~~~~~~~~~
search.cpp:678:56: error: 'completedDepth' was not declared in this scope
  678 |             timeReduction    = lastBestMoveDepth + 8 < completedDepth ? 1.495 : 0.687;
      |                                                        ^~~~~~~~~~~~~~
search.cpp:683:32: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
  683 |             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:717:50: error: 'struct {anonymous}::Skill' has no member named 'best'
  717 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                  ^~~~
search.cpp:717:63: error: 'struct {anonymous}::Skill' has no member named 'best'
  717 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                               ^~~~
search.cpp:717:76: error: 'struct {anonymous}::Skill' has no member named 'pick_best'
  717 |                                            skill.best ? skill.best : skill.pick_best(multiPV)));
      |                                                                            ^~~~~~~~~
search.cpp: At global scope:
search.cpp:725:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
  725 | Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, bool cutNode) {
      | ^~~~~
      | pvalueW
search.cpp:1672:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1672 | Value qsearch(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth) {
      | ^~~~~
      | pvalueW
search.cpp:1973:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1973 | Value value_to_tt(Value v, int ply) {
      | ^~~~~
      | pvalueW
search.cpp:1986:1: error: 'Value' does not name a type; did you mean 'pvalueW'?
 1986 | Value value_from_tt(Value v, int ply, int r50c) {
      | ^~~~~
      | pvalueW
search.cpp:2024:6: error: variable or field 'update_pv' declared void
 2024 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |      ^~~~~~~~~
search.cpp:2024:16: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2024 | 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:2024:22: error: 'pv' was not declared in this scope; did you mean 'Hypnos::UCI::pv'?
 2024 | 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:2024:26: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2024 | 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:2024:37: error: expected primary-expression before 'const'
 2024 | void update_pv(Move* pv, Move move, const Move* childPv) {
      |                                     ^~~~~
search.cpp:2033:29: error: 'Position' does not name a type
 2033 | void update_all_stats(const Position& pos,
      |                             ^~~~~~~~
search.cpp:2034:23: error: 'Stack' has not been declared
 2034 |                       Stack*          ss,
      |                       ^~~~~
search.cpp:2035:23: error: 'Move' has not been declared
 2035 |                       Move            bestMove,
      |                       ^~~~
search.cpp:2036:23: error: 'Value' has not been declared
 2036 |                       Value           bestValue,
      |                       ^~~~~
search.cpp:2037:23: error: 'Value' has not been declared
 2037 |                       Value           beta,
      |                       ^~~~~
search.cpp:2038:23: error: 'Square' has not been declared
 2038 |                       Square          prevSq,
      |                       ^~~~~~
search.cpp:2039:23: error: 'Move' has not been declared
 2039 |                       Move*           quietsSearched,
      |                       ^~~~
search.cpp:2041:23: error: 'Move' has not been declared
 2041 |                       Move*           capturesSearched,
      |                       ^~~~
search.cpp:2043:23: error: 'Depth' has not been declared
 2043 |                       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:2045:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
 2045 |     Color                  us             = pos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:2046:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
 2046 |     Thread*                thisThread     = pos.this_thread();
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:2046:28: error: 'thisThread' was not declared in this scope; did you mean 'ExitThread'?
 2046 |     Thread*                thisThread     = pos.this_thread();
      |                            ^~~~~~~~~~
      |                            ExitThread
search.cpp:2046:49: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2046 |     Thread*                thisThread     = pos.this_thread();
      |                                                 ^~~~~~~~~~~
search.cpp:2047:5: error: 'CapturePieceToHistory' was not declared in this scope; did you mean 'Hypnos::CapturePieceToHistory'?
 2047 |     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:2047:28: error: 'captureHistory' was not declared in this scope
 2047 |     CapturePieceToHistory& captureHistory = thisThread->captureHistory;
      |                            ^~~~~~~~~~~~~~
search.cpp:2048:5: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
 2048 |     Piece                  moved_piece    = pos.moved_piece(bestMove);
      |     ^~~~~
      |     Hypnos::Piece
types.h:179:6: note: 'Hypnos::Piece' declared here
  179 | enum Piece {
      |      ^~~~~
search.cpp:2049:5: error: 'PieceType' was not declared in this scope; did you mean 'Hypnos::PieceType'?
 2049 |     PieceType              captured;
      |     ^~~~~~~~~
      |     Hypnos::PieceType
types.h:167:6: note: 'Hypnos::PieceType' declared here
  167 | enum PieceType {
      |      ^~~~~~~~~
search.cpp:2051:36: error: '{anonymous}::stat_bonus' cannot be used as a function
 2051 |     int quietMoveBonus = stat_bonus(depth + 1);
      |                          ~~~~~~~~~~^~~~~~~~~~~
search.cpp:2052:36: error: '{anonymous}::stat_malus' cannot be used as a function
 2052 |     int quietMoveMalus = stat_malus(depth);
      |                          ~~~~~~~~~~^~~~~~~
search.cpp:2054:14: error: request for member 'capture_stage' in 'pos', which is of non-class type 'const int'
 2054 |     if (!pos.capture_stage(bestMove))
      |              ^~~~~~~~~~~~~
search.cpp:2057:64: error: '{anonymous}::stat_bonus' cannot be used as a function
 2057 |                                                    : stat_bonus(depth);  // smaller bonus
      |                                                      ~~~~~~~~~~^~~~~~~
search.cpp:2062:22: error: 'pawn_structure_index' was not declared in this scope; did you mean 'Hypnos::pawn_structure_index'?
 2062 |         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:2063:33: error: 'moved_piece' was not declared in this scope
 2063 | thisThread->pawnHistory[pIndex][moved_piece][bestMove.to_sq()] << quietMoveBonus;
      |                                 ^~~~~~~~~~~
search.cpp:2063:55: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2063 | thisThread->pawnHistory[pIndex][moved_piece][bestMove.to_sq()] << quietMoveBonus;
      |                                                       ^~~~~
search.cpp:2068:43: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2068 |                 ->pawnHistory[pIndex][pos.moved_piece(quietsSearched[i])][quietsSearched[i].to_sq()]
      |                                           ^~~~~~~~~~~
search.cpp:2068:93: error: request for member 'to_sq' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2068 |                 ->pawnHistory[pIndex][pos.moved_piece(quietsSearched[i])][quietsSearched[i].to_sq()]
      |                                                                                             ^~~~~
search.cpp:2071:37: error: 'us' was not declared in this scope; did you mean 'ss'?
 2071 |             thisThread->mainHistory[us][quietsSearched[i].from_to()] << -quietMoveMalus;
      |                                     ^~
      |                                     ss
search.cpp:2071:59: error: request for member 'from_to' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2071 |             thisThread->mainHistory[us][quietsSearched[i].from_to()] << -quietMoveMalus;
      |                                                           ^~~~~~~
search.cpp:2072:51: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2072 |             update_continuation_histories(ss, pos.moved_piece(quietsSearched[i]),
      |                                                   ^~~~~~~~~~~
search.cpp:2073:61: error: request for member 'to_sq' in '*(quietsSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2073 |                                           quietsSearched[i].to_sq(), -quietMoveMalus);
      |                                                             ^~~~~
search.cpp:2072:13: error: 'update_continuation_histories' was not declared in this scope
 2072 |             update_continuation_histories(ss, pos.moved_piece(quietsSearched[i]),
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2079:9: error: 'captured' was not declared in this scope
 2079 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |         ^~~~~~~~
search.cpp:2079:32: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2079 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |                                ^~~~~~~~
search.cpp:2079:50: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2079 |         captured = type_of(pos.piece_on(bestMove.to_sq()));
      |                                                  ^~~~~
search.cpp:2079:20: error: 'type_of' was not declared in this scope; did you mean 'Hypnos::type_of'?
 2079 |         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:2080:24: error: 'moved_piece' was not declared in this scope
 2080 |         captureHistory[moved_piece][bestMove.to_sq()][captured] << quietMoveBonus;
      |                        ^~~~~~~~~~~
search.cpp:2080:46: error: request for member 'to_sq' in 'bestMove', which is of non-class type 'int'
 2080 |         captureHistory[moved_piece][bestMove.to_sq()][captured] << quietMoveBonus;
      |                                              ^~~~~
search.cpp:2085:19: error: 'SQ_NONE' was not declared in this scope; did you mean 'Hypnos::SQ_NONE'?
 2085 |     if (prevSq != SQ_NONE
      |                   ^~~~~~~
      |                   Hypnos::SQ_NONE
types.h:277:5: note: 'Hypnos::SQ_NONE' declared here
  277 |     SQ_NONE,
      |     ^~~~~~~
search.cpp:2086:23: error: request for member 'moveCount' in '*(ss + -4)', which is of non-class type 'int'
 2086 |         && ((ss - 1)->moveCount == 1 + (ss - 1)->ttHit
      |                       ^~~~~~~~~
search.cpp:2086:50: error: request for member 'ttHit' in '*(ss + -4)', which is of non-class type 'int'
 2086 |         && ((ss - 1)->moveCount == 1 + (ss - 1)->ttHit
      |                                                  ^~~~~
search.cpp:2087:27: error: request for member 'currentMove' in '*(ss + -4)', which is of non-class type 'int'
 2087 |             || ((ss - 1)->currentMove == (ss - 1)->killers[0]))
      |                           ^~~~~~~~~~~
search.cpp:2087:52: error: request for member 'killers' in '*(ss + -4)', which is of non-class type 'int'
 2087 |             || ((ss - 1)->currentMove == (ss - 1)->killers[0]))
      |                                                    ^~~~~~~
search.cpp:2088:17: error: request for member 'captured_piece' in 'pos', which is of non-class type 'const int'
 2088 |         && !pos.captured_piece())
      |                 ^~~~~~~~~~~~~~
search.cpp:2089:51: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2089 |         update_continuation_histories(ss - 1, pos.piece_on(prevSq), prevSq, -quietMoveMalus);
      |                                                   ^~~~~~~~
search.cpp:2089:9: error: 'update_continuation_histories' was not declared in this scope
 2089 |         update_continuation_histories(ss - 1, pos.piece_on(prevSq), prevSq, -quietMoveMalus);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2094:9: error: 'moved_piece' was not declared in this scope
 2094 |         moved_piece = pos.moved_piece(capturesSearched[i]);
      |         ^~~~~~~~~~~
search.cpp:2094:27: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2094 |         moved_piece = pos.moved_piece(capturesSearched[i]);
      |                           ^~~~~~~~~~~
search.cpp:2095:9: error: 'captured' was not declared in this scope
 2095 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |         ^~~~~~~~
search.cpp:2095:35: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2095 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |                                   ^~~~~~~~
search.cpp:2095:64: error: request for member 'to_sq' in '*(capturesSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2095 |         captured    = type_of(pos.piece_on(capturesSearched[i].to_sq()));
      |                                                                ^~~~~
search.cpp:2095:23: error: 'type_of' was not declared in this scope; did you mean 'Hypnos::type_of'?
 2095 |         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:2096:57: error: request for member 'to_sq' in '*(capturesSearched + ((sizetype)(((long long unsigned int)i) * 4)))', which is of non-class type 'int'
 2096 |         captureHistory[moved_piece][capturesSearched[i].to_sq()][captured] << -quietMoveMalus;
      |                                                         ^~~~~
search.cpp: At global scope:
search.cpp:2103:6: error: variable or field 'update_continuation_histories' declared void
 2103 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2103:36: error: 'Stack' was not declared in this scope; did you mean 'Hypnos::Search::Stack'?
 2103 | 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:2103:43: error: 'ss' was not declared in this scope
 2103 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                           ^~
search.cpp:2103:47: error: 'Piece' was not declared in this scope; did you mean 'Hypnos::Piece'?
 2103 | 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:2103:57: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
 2103 | 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:2103:68: error: expected primary-expression before 'int'
 2103 | void update_continuation_histories(Stack* ss, Piece pc, Square to, int bonus) {
      |                                                                    ^~~
search.cpp:2119:31: error: 'Position' does not name a type
 2119 | void update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus) {
      |                               ^~~~~~~~
search.cpp:2119:46: error: 'Stack' has not been declared
 2119 | void update_quiet_stats(const Position& pos, Stack* ss, Move move, int bonus) {
      |                                              ^~~~~
search.cpp:2119:57: error: 'Move' has not been declared
 2119 | 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:2122:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2122 |     if (ss->killers[0] != move)
      |             ^~~~~~~
search.cpp:2124:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2124 |         ss->killers[1] = ss->killers[0];
      |             ^~~~~~~
search.cpp:2124:30: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2124 |         ss->killers[1] = ss->killers[0];
      |                              ^~~~~~~
search.cpp:2125:13: error: request for member 'killers' in '* ss', which is of non-class type 'int'
 2125 |         ss->killers[0] = move;
      |             ^~~~~~~
search.cpp:2128:5: error: 'Color' was not declared in this scope; did you mean 'Hypnos::Color'?
 2128 |     Color   us         = pos.side_to_move();
      |     ^~~~~
      |     Hypnos::Color
types.h:111:6: note: 'Hypnos::Color' declared here
  111 | enum Color {
      |      ^~~~~
search.cpp:2129:5: error: 'Thread' was not declared in this scope; did you mean 'Hypnos::Thread'?
 2129 |     Thread* thisThread = pos.this_thread();
      |     ^~~~~~
      |     Hypnos::Thread
thread.h:38:7: note: 'Hypnos::Thread' declared here
   38 | class Thread {
      |       ^~~~~~
search.cpp:2129:13: error: 'thisThread' was not declared in this scope; did you mean 'ExitThread'?
 2129 |     Thread* thisThread = pos.this_thread();
      |             ^~~~~~~~~~
      |             ExitThread
search.cpp:2129:30: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2129 |     Thread* thisThread = pos.this_thread();
      |                              ^~~~~~~~~~~
search.cpp:2130:29: error: 'us' was not declared in this scope; did you mean 'ss'?
 2130 |     thisThread->mainHistory[us][move.from_to()] << bonus;
      |                             ^~
      |                             ss
search.cpp:2130:38: error: request for member 'from_to' in 'move', which is of non-class type 'int'
 2130 |     thisThread->mainHistory[us][move.from_to()] << bonus;
      |                                      ^~~~~~~
search.cpp:2131:43: error: request for member 'moved_piece' in 'pos', which is of non-class type 'const int'
 2131 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |                                           ^~~~~~~~~~~
search.cpp:2131:67: error: request for member 'to_sq' in 'move', which is of non-class type 'int'
 2131 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |                                                                   ^~~~~
search.cpp:2131:5: error: 'update_continuation_histories' was not declared in this scope
 2131 |     update_continuation_histories(ss, pos.moved_piece(move), move.to_sq(), bonus);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:2134:20: error: request for member 'currentMove' in '*(ss + -4)', which is of non-class type 'int'
 2134 |     if (((ss - 1)->currentMove).is_ok())
      |                    ^~~~~~~~~~~
search.cpp:2136:9: error: 'Square' was not declared in this scope; did you mean 'Hypnos::Square'?
 2136 |         Square prevSq                                          = ((ss - 1)->currentMove).to_sq();
      |         ^~~~~~
      |         Hypnos::Square
types.h:212:6: note: 'Hypnos::Square' declared here
  212 | enum Square : int {
      |      ^~~~~~
search.cpp:2137:38: error: request for member 'piece_on' in 'pos', which is of non-class type 'const int'
 2137 |         thisThread->counterMoves[pos.piece_on(prevSq)][prevSq] = move;
      |                                      ^~~~~~~~
search.cpp:2137:47: error: 'prevSq' was not declared in this scope
 2137 |         thisThread->counterMoves[pos.piece_on(prevSq)][prevSq] = move;
      |                                               ^~~~~~
search.cpp: At global scope:
search.cpp:2143:1: error: 'Move' does not name a type
 2143 | Move Skill::pick_best(size_t multiPV) {
      | ^~~~
search.cpp:2179:6: error: 'MainThread' has not been declared
 2179 | void MainThread::check_time() {
      |      ^~~~~~~~~~
search.cpp:2179:6: warning: no previous declaration for 'void check_time()' [-Wmissing-declarations]
search.cpp: In function 'void check_time()':
search.cpp:2181:11: error: 'callsCnt' was not declared in this scope
 2181 |     if (--callsCnt > 0)
      |           ^~~~~~~~
search.cpp:2185:5: error: 'callsCnt' was not declared in this scope
 2185 |     callsCnt = Limits.nodes ? std::min(512, int(Limits.nodes / 1024)) : 512;
      |     ^~~~~~~~
search.cpp:2185:16: error: 'Limits' was not declared in this scope; did you mean 'Hypnos::Search::Limits'?
 2185 |     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:2187:12: error: 'TimePoint' does not name a type
 2187 |     static TimePoint lastInfoTime = now();
      |            ^~~~~~~~~
search.cpp:2189:5: error: 'TimePoint' was not declared in this scope; did you mean 'Hypnos::TimePoint'?
 2189 |     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:2190:14: error: expected ';' before 'tick'
 2190 |     TimePoint tick    = Limits.startTime + elapsed;
      |              ^~~~~
      |              ;
search.cpp:2192:9: error: 'tick' was not declared in this scope
 2192 |     if (tick - lastInfoTime >= 1000)
      |         ^~~~
search.cpp:2192:16: error: 'lastInfoTime' was not declared in this scope
 2192 |     if (tick - lastInfoTime >= 1000)
      |                ^~~~~~~~~~~~
search.cpp:2195:9: error: 'dbg_print' was not declared in this scope; did you mean 'Hypnos::dbg_print'?
 2195 |         dbg_print();
      |         ^~~~~~~~~
      |         Hypnos::dbg_print
misc.h:64:6: note: 'Hypnos::dbg_print' declared here
   64 | void dbg_print();
      |      ^~~~~~~~~
search.cpp:2199:9: error: 'ponder' was not declared in this scope
 2199 |     if (ponder)
      |         ^~~~~~
search.cpp:2202:43: error: 'elapsed' was not declared in this scope
 2202 |     if ((Limits.use_time_management() && (elapsed > Time.maximum() || stopOnPonderhit))
      |                                           ^~~~~~~
search.cpp:2202:53: error: 'Time' was not declared in this scope; did you mean 'Hypnos::Time'?
 2202 |     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:2202:71: error: 'stopOnPonderhit' was not declared in this scope
 2202 |     if ((Limits.use_time_management() && (elapsed > Time.maximum() || stopOnPonderhit))
      |                                                                       ^~~~~~~~~~~~~~~
search.cpp:2204:29: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
 2204 |         || (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:2211:8: error: 'UCI' has not been declared
 2211 | string UCI::pv(const Position& pos, Depth depth) {
      |        ^~~
search.cpp:2211:22: error: 'Position' does not name a type
 2211 | string UCI::pv(const Position& pos, Depth depth) {
      |                      ^~~~~~~~
search.cpp:2211:37: error: 'Depth' has not been declared
 2211 | string UCI::pv(const Position& pos, Depth depth) {
      |                                     ^~~~~
search.cpp:2211:8: warning: no previous declaration for 'std::string pv(const int&, int)' [-Wmissing-declarations]
 2211 | string UCI::pv(const Position& pos, Depth depth) {
      |        ^~~
search.cpp: In function 'std::string pv(const int&, int)':
search.cpp:2214:5: error: 'TimePoint' was not declared in this scope; did you mean 'Hypnos::TimePoint'?
 2214 |     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:2215:11: error: 'RootMoves' does not name a type
 2215 |     const RootMoves&  rootMoves     = pos.this_thread()->rootMoves;
      |           ^~~~~~~~~
search.cpp:2216:43: error: request for member 'this_thread' in 'pos', which is of non-class type 'const int'
 2216 |     size_t            pvIdx         = pos.this_thread()->pvIdx;
      |                                           ^~~~~~~~~~~
search.cpp:2217:55: error: 'Options' was not declared in this scope; did you mean 'Hypnos::Options'?
 2217 |     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:2217:76: error: 'rootMoves' was not declared in this scope
 2217 |     size_t            multiPV       = std::min(size_t(Options["MultiPV"]), rootMoves.size());
      |                                                                            ^~~~~~~~~
search.cpp:2218:39: error: 'Threads' was not declared in this scope; did you mean 'Hypnos::Threads'?
 2218 |     uint64_t          nodesSearched = Threads.nodes_searched();
      |                                       ^~~~~~~
      |                                       Hypnos::Threads
thread.h:134:19: note: 'Hypnos::Threads' declared here
  134 | extern ThreadPool Threads;
      |                   ^~~~~~~
search.cpp:2223:47: error: 'VALUE_INFINITE' was not declared in this scope; did you mean 'Hypnos::VALUE_INFINITE'?
 2223 |         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:2228:9: error: 'Depth' was not declared in this scope; did you mean 'Hypnos::Depth'?
 2228 |         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:2229:9: error: 'Value' was not declared in this scope; did you mean 'Hypnos::Value'?
 2229 |         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:2231:13: error: 'v' was not declared in this scope
 2231 |         if (v == -VALUE_INFINITE)
      |             ^
search.cpp:2232:17: error: 'VALUE_ZERO' was not declared in this scope; did you mean 'Hypnos::VALUE_ZERO'?
 2232 |             v = VALUE_ZERO;
      |                 ^~~~~~~~~~
      |                 Hypnos::VALUE_ZERO
types.h:145:17: note: 'Hypnos::VALUE_ZERO' declared here
  145 | constexpr Value VALUE_ZERO     = 0;
      |                 ^~~~~~~~~~
search.cpp:2234:44: error: 'v' was not declared in this scope
 2234 |         bool tb = TB::RootInTB && std::abs(v) <= VALUE_TB;
      |                                            ^
search.cpp:2234:50: error: 'VALUE_TB' was not declared in this scope; did you mean 'Hypnos::VALUE_TB'?
 2234 |         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:2241:28: error: 'd' was not declared in this scope
 2241 |            << " depth " << d << " seldepth " << rootMoves[i].selDepth << " multipv " << i + 1
      |                            ^
search.cpp:2242:28: error: 'UCI' has not been declared
 2242 |            << " score " << UCI::value(v);
      |                            ^~~
search.cpp:2245:19: error: 'UCI' has not been declared
 2245 |             ss << UCI::wdl(v, pos.game_ply());
      |                   ^~~
search.cpp:2245:35: error: request for member 'game_ply' in 'pos', which is of non-class type 'const int'
 2245 |             ss << UCI::wdl(v, pos.game_ply());
      |                                   ^~~~~~~~
search.cpp:2252:79: error: 'elapsed' was not declared in this scope
 2252 |         ss << " nodes " << nodesSearched << " nps " << nodesSearched * 1000 / elapsed
      |                                                                               ^~~~~~~
search.cpp:2253:31: error: 'TT' was not declared in this scope; did you mean 'Hypnos::TT'?
 2253 |            << " 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:2255:14: error: 'Move' was not declared in this scope; did you mean 'Hypnos::Move'?
 2255 |         for (Move m : rootMoves[i].pv)
      |              ^~~~
      |              Hypnos::Move
types.h:429:7: note: 'Hypnos::Move' declared here
  429 | class Move {
      |       ^~~~
search.cpp:2257:5: error: expected primary-expression before '}' token
 2257 |     }
      |     ^
search.cpp:2256:58: error: expected ';' before '}' token
 2256 |             ss << " " << UCI::move(m, pos.is_chess960());
      |                                                          ^
      |                                                          ;
 2257 |     }
      |     ~                                                     
search.cpp:2257:5: error: expected primary-expression before '}' token
 2257 |     }
      |     ^
search.cpp:2256:58: error: expected ')' before '}' token
 2256 |             ss << " " << UCI::move(m, pos.is_chess960());
      |                                                          ^
      |                                                          )
 2257 |     }
      |     ~                                                     
search.cpp:2255:13: note: to match this '('
 2255 |         for (Move m : rootMoves[i].pv)
      |             ^
search.cpp:2257:5: error: expected primary-expression before '}' token
 2257 |     }
      |     ^
search.cpp: At global scope:
search.cpp:2267:6: error: 'RootMove' has not been declared
 2267 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |      ^~~~~~~~
search.cpp:2267:39: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
 2267 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |                                       ^~~~~~~~
      |                                       Hypnos::Position
position.h:80:7: note: 'Hypnos::Position' declared here
   80 | class Position {
      |       ^~~~~~~~
search.cpp:2267:49: error: 'pos' was not declared in this scope; did you mean 'pow'?
 2267 | bool RootMove::extract_ponder_from_tt(Position& pos) {
      |                                                 ^~~
      |                                                 pow
search.cpp:2293:6: error: variable or field 'rank_root_moves' declared void
 2293 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |      ^~~~~~~~~~
search.cpp:2293:34: error: 'Position' was not declared in this scope; did you mean 'Hypnos::Position'?
 2293 | 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:2293:44: error: 'pos' was not declared in this scope; did you mean 'pow'?
 2293 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                            ^~~
      |                                            pow
search.cpp:2293:57: error: 'RootMoves' is not a member of 'Search'; did you mean 'Hypnos::Search::RootMoves'?
 2293 | 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:2293:68: error: 'rootMoves' was not declared in this scope
 2293 | void Tablebases::rank_root_moves(Position& pos, Search::RootMoves& rootMoves) {
      |                                                                    ^~~~~~~~~
search.cpp:2340:1: error: expected declaration before '}' token
 2340 | }  // namespace Hypnos
      | ^
search.cpp:2033: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]
 2033 | void update_all_stats(const Position& pos,
      |      ^~~~~~~~~~~~~~~~
make[1]: *** [<builtin>: search.o] Error 1
make[1]: Leaving directory '/c/Users/BigZer/AppData/Local/Temp/tmp0o_qq7pr/HypnoS/HypnoS-tmp/src'
make: *** [Makefile:796: build] Error 2