===================== [simple recursion] =====================
Debug Assertion failed at integration.cpp:501: void __cdecl rec(int):
    debug_assert(false);

Stack trace:
# 1 rec(int)
      at integration.cpp:501
# 2 rec(int)
      at integration.cpp:502
|                                   |
| 8 layers of recursion were folded |
|                                   |
#11 rec(int)
      at integration.cpp:502
#12 test_class<int>::something_else()
      at integration.cpp:2600
#13 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
#14 main()
      at integration.cpp:402


===================== [other recursion] =====================
Debug Assertion failed at integration.cpp:508: void __cdecl recursive_a(int):
    debug_assert(false);

Stack trace:
# 1 recursive_a(int)
      at integration.cpp:508
# 2 recursive_b(int)
      at integration.cpp:514
# 3 recursive_a(int)
      at integration.cpp:509
# 4 recursive_b(int)
      at integration.cpp:514
# 5 recursive_a(int)
      at integration.cpp:509
# 6 recursive_b(int)
      at integration.cpp:514
# 7 recursive_a(int)
      at integration.cpp:509
# 8 recursive_b(int)
      at integration.cpp:514
# 9 recursive_a(int)
      at integration.cpp:509
#10 recursive_b(int)
      at integration.cpp:514
#11 recursive_a(int)
      at integration.cpp:509
#12 test_class<int>::something_else()
      at integration.cpp:2700
#13 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
#14 main()
      at integration.cpp:402


===================== [Path differentiation] =====================
Debug Assertion failed at x/a.cpp:5: void __cdecl test_path_differentiation_2(void):
    debug_assert(false);

Stack trace:
# 1 test_path_differentiation_2()
      at x/a.cpp:5
# 2 test_path_differentiation()
      at integration/a.cpp:7
# 3 test_class<int>::something_else()
      at integration.cpp:2800
# 4 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
# 5 main()
      at integration.cpp:402


===================== [Type cleaning] =====================
Debug Assertion failed at integration.cpp:3305: void __cdecl test_class<int>::test_pretty_function_cleaning(const std::map<std::string, std::vector<std::string_view>, std::less<std::string>> &):
    debug_assert(map == other);
    Where:
        map   => std::map<std::string, std::vector<std::string_view>, std::less<std::string>>: [["bar", ["b1", "b3", "b5"]], ["foo", ["f1", "f3", "f5"]]]
        other => std::map<std::string, std::vector<std::string_view>, std::less<std::string>>: []

Stack trace:
# 1 test_class<int>::test_pretty_function_cleaning(std::map<std::string, std::vector<std::string_view>, std::less<std::string>
      at integration.cpp:3305
# 2 test_class<int>::something_else()
      at integration.cpp:3201
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
# 4 main()
      at integration.cpp:402


===================== [Complex type resolution] =====================
Debug Assertion failed at integration.cpp:3602: void __cdecl test_class<int>::test_complex_typing(volatile const std::vector<std::string> *const &, int [], const char (&)[4], void (__cdecl complex_typing::S::* )(int, std::string, void ***, void *(__cdecl *)(int), void (__cdecl *(__cdecl *)(int))(void), void (__cdecl *(*(__cdecl *)(int))[5])(void)), int complex_typing::S::* ):
    debug_assert(false);

Stack trace:
# 1 test_class<int>::test_complex_typing(std::vector<std::string>*&, int*, char(&)[4], void(complex_typing::S::*)(int, std::string, void***, void*(*)(int), void(*(*)(int))(), void(*(*(*)(int))[5])()), int complex_typing::S::*)
      at integration.cpp:3602
# 2 test_class<int>::something_else()
      at integration.cpp:3502
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
# 4 main()
      at integration.cpp:402


