In file included from /usr/include/c++/12/bits/move.h:57,
                 from /usr/include/c++/12/bits/exception_ptr.h:43,
                 from /usr/include/c++/12/exception:168,
                 from /usr/include/c++/12/ios:39,
                 from /usr/include/c++/12/istream:38,
                 from /usr/include/c++/12/fstream:38,
                 from /mnt/c/Projects/ils.ils/src/main.cpp:1:
/usr/include/c++/12/type_traits: In substitution of ‘template<class _Fn, class ... _Args> using invoke_result_t = typename std::invoke_result::type [with _Fn = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Args = {NodeVarDeclare* const&}]’:
/usr/include/c++/12/variant:1102:14:   required from ‘constexpr bool std::__detail::__variant::__check_visitor_results(std::index_sequence<_Ind ...>) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variant = const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&; long unsigned int ..._Idxs = {0, 1, 2, 3, 4, 5}; std::index_sequence<_Ind ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5>]’
/usr/include/c++/12/variant:1836:44:   required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19:   required from here
/usr/include/c++/12/type_traits:3034:11: error: no type named ‘type’ in ‘struct std::invoke_result<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&>’
 3034 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
      |           ^~~~~~~~~~~~~~~
In file included from /mnt/c/Projects/ils.ils/src/parser.hpp:4,
                 from /mnt/c/Projects/ils.ils/src/generation.hpp:6,
                 from /mnt/c/Projects/ils.ils/src/main.cpp:8:
/usr/include/c++/12/variant: In instantiation of ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’:
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19:   required from here
/usr/include/c++/12/variant:1836:44:   in ‘constexpr’ expansion of ‘std::__detail::__variant::__check_visitor_results<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&, 0, 1, 2, 3, 4, 5>((std::make_index_sequence<6>(), std::make_index_sequence<6>()))’
/usr/include/c++/12/variant:1835:26: error: ‘constexpr’ call flows off the end of the function
 1835 |           constexpr bool __visit_rettypes_match = __detail::__variant::
      |                          ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/variant:1840:29: error: non-constant condition for static assertion
 1840 |               static_assert(__visit_rettypes_match,
      |                             ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/variant: In instantiation of ‘static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; long unsigned int ...__indices = {1}]’:
/usr/include/c++/12/variant:1784:5:   required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}]’
/usr/include/c++/12/variant:1846:34:   required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19:   required from here
/usr/include/c++/12/variant:1031:31: error: no matching function for call to ‘__invoke(Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&)’
 1031 |           return std::__invoke(std::forward<_Visitor>(__visitor),
      |                  ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |               __element_by_index_or_cookie<__indices>(
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 std::forward<_Variants>(__vars))...);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/bits/refwrap.h:38,
                 from /usr/include/c++/12/string:51,
                 from /usr/include/c++/12/bits/locale_classes.h:40,
                 from /usr/include/c++/12/bits/ios_base.h:41,
                 from /usr/include/c++/12/ios:42:
/usr/include/c++/12/bits/invoke.h:90:5: note: candidate: ‘template<class _Callable, class ... _Args> constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...)’
   90 |     __invoke(_Callable&& __fn, _Args&&... __args)
      |     ^~~~~~~~
/usr/include/c++/12/bits/invoke.h:90:5: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/invoke.h: In substitution of ‘template<class _Callable, class ... _Args> constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Args = {NodeVarDeclare* const&}]’:
/usr/include/c++/12/variant:1031:24:   required from ‘static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; long unsigned int ...__indices = {1}]’
/usr/include/c++/12/variant:1784:5:   required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}]’
/usr/include/c++/12/variant:1846:34:   required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19:   required from here
/usr/include/c++/12/bits/invoke.h:90:5: error: no type named ‘type’ in ‘struct std::__invoke_result<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&>’
make[2]: *** [CMakeFiles/ils.dir/build.make:76: CMakeFiles/ils.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:839: CMakeFiles/ils.dir/all] Error 2
make: *** [Makefile:121: all] Error 2