Compile [2024-11-15 18:22:17 UTC]: fail
"g++-12" -fvisibility-inlines-hidden -std=c++17 -fPIC -m64 -pthread -O0 -fno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -I".." -I"../libs/hana/include" -I"../libs/hana/test/_include" -c -o "/var/boost/run/results/boost/bin.v2/libs/hana/test/test~minimal_product.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/minimal_product.o" "../libs/hana/test/minimal_product.cpp"
In file included from ../boost/hana/detail/operators/comparable.hpp:15,
from ../boost/hana/pair.hpp:20,
from ../boost/hana/unpack.hpp:26,
from ../boost/hana/fold_left.hpp:20,
from ../boost/hana/concept/foldable.hpp:19,
from ../boost/hana/core/to.hpp:16,
from ../boost/hana/bool.hpp:17,
from ../boost/hana/tuple.hpp:17,
from ../libs/hana/test/minimal_product.cpp:5:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>':
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&; Y = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&]'
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../libs/hana/test/_include/laws/foldable.hpp:125:17: required from 'boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)> [with auto:49 = product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*]'
../boost/hana/basic_tuple.hpp:125:39: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/tuple.hpp:233:32: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>]'
../libs/hana/test/_include/laws/foldable.hpp:122:27: required from 'boost::hana::test::TestFoldable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestFoldable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:53:51: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../libs/hana/test/_include/laws/base.hpp:12,
from ../libs/hana/test/minimal_product.cpp:9:
../boost/hana/equal.hpp:55:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::equal_impl<T, U, boost::hana::when<condition> > [with T = boost::hana::tuple_tag; U = boost::hana::tuple_tag; bool condition = true]'
55 | struct equal_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp:168:12: note: 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(boost::hana::Sequence<S>::value && boost::hana::Sequence<Tag>::value)> > [with T = boost::hana::tuple_tag; U = boost::hana::tuple_tag]'
168 | struct equal_impl<T, U, when<Sequence<T>::value && hana::Sequence<U>::value>> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: error: invalid use of incomplete type 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: note: declaration of 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&; Y = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&]':
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../libs/hana/test/_include/laws/foldable.hpp:125:17: required from 'boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)> [with auto:49 = product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*]'
../boost/hana/basic_tuple.hpp:125:39: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/tuple.hpp:233:32: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>]'
../libs/hana/test/_include/laws/foldable.hpp:122:27: required from 'boost::hana::test::TestFoldable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestFoldable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:53:51: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&; Y = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&]':
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >]'
../libs/hana/test/_include/laws/foldable.hpp:125:17: required from 'boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)> [with auto:49 = product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*]'
../boost/hana/basic_tuple.hpp:125:39: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/tuple.hpp:233:32: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>]'
../libs/hana/test/_include/laws/foldable.hpp:122:27: required from 'boost::hana::test::TestFoldable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestFoldable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:53:51: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&; Y = boost::hana::tuple<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&]':
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >]'
../libs/hana/test/_include/laws/foldable.hpp:125:17: required from 'boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)> [with auto:49 = product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*]'
../boost/hana/basic_tuple.hpp:125:39: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/tuple.hpp:233:32: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>]'
../libs/hana/test/_include/laws/foldable.hpp:122:27: required from 'boost::hana::test::TestFoldable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestFoldable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:53:51: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&; Y = boost::hana::tuple<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&]':
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >; Y = boost::hana::test::injection_result<0, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >]'
../libs/hana/test/_include/laws/foldable.hpp:125:17: required from 'boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)> [with auto:49 = product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*]'
../boost/hana/basic_tuple.hpp:125:39: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/tuple.hpp:233:32: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestFoldable<MinimalProduct>::TestFoldable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:49)>]'
../libs/hana/test/_include/laws/foldable.hpp:122:27: required from 'boost::hana::test::TestFoldable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestFoldable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:53:51: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<MinimalProduct, MinimalProduct, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::equal_impl<MinimalProduct, MinimalProduct, void>]'
../boost/hana/concept/comparable.hpp:27:64: required from 'struct boost::hana::Comparable<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> > >'
../libs/hana/test/_include/laws/comparable.hpp:41:37: required from 'boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)> [with auto:2 = product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >&, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >&}; F = boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)>*]'
../boost/hana/basic_tuple.hpp:125:39: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2, 3}; Xn = {product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> >}; F = boost::hana::detail::on_each<boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)>*>]'
../boost/hana/unpack.hpp:47:29: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >&; F = boost::hana::test::TestComparable<MinimalProduct, boost::hana::test::laws>::TestComparable<boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >)::<lambda(auto:2)>]'
../libs/hana/test/_include/laws/comparable.hpp:40:27: required from 'boost::hana::test::TestComparable<T, boost::hana::test::laws>::TestComparable(Xs) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; T = MinimalProduct]'
../libs/hana/test/_include/laws/comparable.hpp:107:77: required from 'boost::hana::test::TestComparable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestComparable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<3> >, product_t<boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:51:53: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<MinimalProduct, MinimalProduct, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
../boost/hana/equal.hpp:55:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::equal_impl<T, U, boost::hana::when<condition> > [with T = MinimalProduct; U = MinimalProduct; bool condition = true]'
55 | struct equal_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp:120:12: note: 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(boost::hana::Product<P>::value && boost::hana::Product<U>::value)> > [with T = MinimalProduct; U = MinimalProduct]'
120 | struct equal_impl<T, U, when<hana::Product<T>::value && hana::Product<U>::value>> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: error: invalid use of incomplete type 'struct boost::hana::equal_impl<MinimalProduct, MinimalProduct, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: note: declaration of 'struct boost::hana::equal_impl<MinimalProduct, MinimalProduct, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/orderable.hpp:17,
from ../boost/hana/pair.hpp:21:
../boost/hana/fwd/less.hpp: In instantiation of 'struct boost::hana::less_impl<MinimalProduct, MinimalProduct, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::less_impl<MinimalProduct, MinimalProduct, void>]'
../boost/hana/concept/orderable.hpp:27:65: required from 'struct boost::hana::Orderable<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> > >'
../libs/hana/test/_include/laws/orderable.hpp:42:31: required from 'boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)> [with auto:53 = product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >&, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >&, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >&, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> >&}; F = boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)>*]'
../boost/hana/basic_tuple.hpp:125:39: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2, 3}; Xn = {product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> >}; F = boost::hana::detail::on_each<boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)>*>]'
../boost/hana/unpack.hpp:47:29: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >&; F = boost::hana::detail::on_each<boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)>*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >&; F = boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)>; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >&; F = boost::hana::test::TestOrderable<MinimalProduct, boost::hana::test::laws>::TestOrderable<boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > > >(boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >)::<lambda(auto:53)>]'
../libs/hana/test/_include/laws/orderable.hpp:41:27: required from 'boost::hana::test::TestOrderable<T, boost::hana::test::laws>::TestOrderable(Xs) [with Xs = boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >; T = MinimalProduct]'
../libs/hana/test/_include/laws/orderable.hpp:117:46: required from 'boost::hana::test::TestOrderable<P, boost::hana::when<boost::hana::Product<P>::value> >::TestOrderable(Products) [with Products = boost::hana::tuple<product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<3>, boost::hana::test::ct_ord<4> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<3> >, product_t<boost::hana::test::ct_ord<4>, boost::hana::test::ct_ord<4> > >; P = MinimalProduct]'
../libs/hana/test/minimal_product.cpp:52:53: required from here
../boost/hana/fwd/less.hpp:42:12: error: ambiguous template instantiation for 'struct boost::hana::less_impl<MinimalProduct, MinimalProduct, boost::hana::when<true> >'
42 | struct less_impl : less_impl<T, U, when<true>> { };
| ^~~~~~~~~
In file included from ../boost/hana/maximum.hpp:21,
from ../libs/hana/test/_include/laws/foldable.hpp:33,
from ../libs/hana/test/minimal_product.cpp:11:
../boost/hana/less.hpp:67:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::less_impl<T, U, boost::hana::when<condition> > [with T = MinimalProduct; U = MinimalProduct; bool condition = true]'
67 | struct less_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/less.hpp:116:12: note: 'template<class T, class U> struct boost::hana::less_impl<T, U, boost::hana::when<(boost::hana::Product<P>::value && boost::hana::Product<U>::value)> > [with T = MinimalProduct; U = MinimalProduct]'
116 | struct less_impl<T, U, when<hana::Product<T>::value ...
[The content has been trimmed by the report system because it exceeds 65536 bytes]