Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pairwise Alignment with ranges and with_alignment doesn't compile #1598

Closed
SGSSGene opened this issue Feb 18, 2020 · 11 comments · Fixed by #1618
Closed

Pairwise Alignment with ranges and with_alignment doesn't compile #1598

SGSSGene opened this issue Feb 18, 2020 · 11 comments · Fixed by #1618
Assignees
Labels
bug faulty or wrong behaviour of code
Milestone

Comments

@SGSSGene
Copy link
Contributor

SGSSGene commented Feb 18, 2020

Platform

  • SeqAn version: 8731777
  • Operating system: Linux schenker 5.5.4-arch1-1 #1 SMP PREEMPT Sat, 15 Feb 2020 00:36:29 +0000 x86_64 GNU/Linux
  • Compiler: gcc (Arch Linux 9.2.1+20200130-2) 9.2.1 20200130

Description

I followed the pairwise alignment tutorial http://docs.seqan.de/seqan/3-master-user/tutorial_pairwise_alignment.html but instead of std::vector<dna4> I use ranges. The code doesn't compile when I set seqan3::align_cfg::result{seqan3::with_alignment}.

How to repeat the problem

The Code below reproduces the error.
If you remove seqan3::align_cfg::result{seqan3::with_alignment} it compiles.
If instead of a range I just use a std::vector<dna4> for s2 it also compiles.

#include <seqan3/alignment/pairwise/align_pairwise.hpp>
#include <seqan3/alignment/scoring/nucleotide_scoring_scheme.hpp>
#include <seqan3/alphabet/nucleotide/dna4.hpp>

int main() {
    using seqan3::operator""_dna4;
    auto s1 = "TTACGTACGGACTAGCTACAACATTACGGACTAC"_dna4;
    auto g  = "GGACGACATGACGTACGACTTTACGTACGACTAGC"_dna4;
    auto s2 = g | std::views::drop(2);

    // Configure the alignment kernel.
    auto config = seqan3::align_cfg::mode{seqan3::global_alignment} |
                   seqan3::align_cfg::scoring{seqan3::nucleotide_scoring_scheme{}} |
                   seqan3::align_cfg::result{seqan3::with_alignment};

     // Invoke the pairwise alignment which returns a lazy range over alignment results.
     auto results = seqan3::align_pairwise(std::tie(s1, s2), config);
}

Expected behaviour

I expect align_pairwise to work with ranges in all configurations.

Actual behaviour

I fails with a compile error:

IIn file included from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_result_selector.hpp:32,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:24,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:26,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:24,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp: In instantiation of ‘void seqan3::assign_unaligned(seqan3::gap_decorator<inner_type>&, unaligned_seq_t&&) [with unaligned_seq_t = std::span<seqan3::dna4, -1>; inner_type = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>]’:
/home/gene/Coding/seqan3/include/seqan3/alignment/matrix/alignment_trace_algorithms.hpp:125:21:   required from ‘alignment_t seqan3::detail::alignment_trace(database_t&&, query_t&&, trace_matrix_t&&, seqan3::alignment_coordinate, seqan3::alignment_coordinate) [with alignment_t = std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >; database_t = std::vector<seqan3::dna4>&; query_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; trace_matrix_t = const seqan3::detail::edit_distance_trace_matrix_full<long unsigned int, false, false>&]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/edit_distance_unbanded.hpp:1070:64:   required from ‘seqan3::alignment_result<typename edit_traits::result_value_type> seqan3::detail::edit_distance_unbanded<database_t, query_t, align_config_t, traits_t>::operator()(size_t) [with database_t = std::vector<seqan3::dna4>&; query_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; align_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; edit_traits = seqan3::detail::default_edit_distance_trait_type<std::vector<seqan3::dna4>&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&, seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, std::integral_constant<bool, false>, long unsigned int>; typename edit_traits::result_value_type = seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*>; size_t = long unsigned int]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/edit_distance_algorithm.hpp:115:20:   required from ‘constexpr auto seqan3::detail::edit_distance_algorithm<config_t, traits_t>::compute_single_pair(size_t, first_range_t&&, second_range_t&&) [with first_range_t = std::vector<seqan3::dna4>&; second_range_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; traits_t = seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:64)> [with auto:64 = std::integral_constant<bool, false>]::edit_traits_type; size_t = long unsigned int]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/edit_distance_algorithm.hpp:92:13:   required from ‘constexpr auto seqan3::detail::edit_distance_algorithm<config_t, traits_t>::operator()(indexed_sequence_pairs_t&&) [with indexed_sequence_pairs_t = ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; traits_t = seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:64)> [with auto:64 = std::integral_constant<bool, false>]::edit_traits_type]’
/usr/include/c++/9.2.1/type_traits:2336:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = seqan3::detail::edit_distance_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:64)> [with auto:64 = std::integral_constant<bool, false>]::edit_traits_type>&; _Args = {ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >}]’
/usr/include/c++/9.2.1/type_traits:2347:55:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:362:59:   required from ‘seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:64)> [with auto:64 = std::integral_constant<bool, false>]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:370:45:   required from ‘seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:65)> [with auto:65 = std::integral_constant<bool, false>]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:393:42:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_edit_distance(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:310:89:   required from ‘static constexpr auto seqan3::detail::alignment_configurator::configure(const config_t&) [with sequences_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:169:104:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:148:26:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&>; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/testOSS2/testOSS.cpp:18:68:   required from here
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp:297:13: error: no match for ‘operator=’ (operand types are ‘seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >’ and ‘std::span<seqan3::dna4, -1>’)
  297 |         dec = unaligned;
      |         ~~~~^~~~~~~~~~~
In file included from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_result_selector.hpp:32,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:24,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:26,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:24,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp:84:7: note: candidate: ‘seqan3::gap_decorator<inner_type>& seqan3::gap_decorator<inner_type>::operator=(const seqan3::gap_decorator<inner_type>&) [with inner_type = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>]’
   84 | class gap_decorator
      |       ^~~~~~~~~~~~~
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp:125:41: note:   no known conversion for argument 1 from ‘std::span<seqan3::dna4, -1>’ to ‘const seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >&’
  125 |     constexpr gap_decorator & operator=(gap_decorator const &) = default;
      |                                         ^~~~~~~~~~~~~~~~~~~~~
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp:84:7: note: candidate: ‘seqan3::gap_decorator<inner_type>& seqan3::gap_decorator<inner_type>::operator=(seqan3::gap_decorator<inner_type>&&) [with inner_type = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>]’
   84 | class gap_decorator
      |       ^~~~~~~~~~~~~
/home/gene/Coding/seqan3/include/seqan3/range/decorator/gap_decorator.hpp:129:58: note:   no known conversion for argument 1 from ‘std::span<seqan3::dna4, -1>’ to ‘seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >&&’
  129 |     constexpr gap_decorator & operator=(gap_decorator && rhs) = default;
      |                                         ~~~~~~~~~~~~~~~~~^~~
In file included from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:26,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:24,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp: In instantiation of ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::make_alignment_result(index_t, sequence1_t&, sequence2_t&) [with index_t = long unsigned int; sequence1_t = std::vector<seqan3::dna4>; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:302:67:   required from ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::compute_single_pair(size_t, sequence1_t&&, sequence2_t&&) [with sequence1_t = std::vector<seqan3::dna4>&; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}; size_t = long unsigned int]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:191:13:   required from ‘auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::operator()(indexed_sequence_pairs_t&&) [with indexed_sequence_pairs_t = ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’
/usr/include/c++/9.2.1/type_traits:2336:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&; _Args = {ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >}]’
/usr/include/c++/9.2.1/type_traits:2347:55:   required from ‘struct std::__result_of_impl<false, false, seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&, ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> > >’
/usr/include/c++/9.2.1/type_traits:2352:12:   required from ‘struct std::__invoke_result<seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&, ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> > >’
/usr/include/c++/9.2.1/bits/std_function.h:375:9:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:543:46:   required from ‘seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:68)> [with auto:68 = std::integral_constant<bool, false>]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:560:44:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:500:91:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_scoring_scheme(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:324:74:   required from ‘static constexpr auto seqan3::detail::alignment_configurator::configure(const config_t&) [with sequences_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:169:104:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:148:26:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&>; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/testOSS2/testOSS.cpp:18:68:   required from here
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:632:31: error: no match for ‘operator=’ (operand types are ‘std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >’ and ‘std::remove_reference<std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >&>::type’ {aka ‘std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >’})
  632 |                 res.alignment = std::move(trace_res.alignment);
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9.2.1/functional:54,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:15,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/usr/include/c++/9.2.1/tuple:1205:7: note: candidate: ‘std::tuple<_T1, _T2>& std::tuple<_T1, _T2>::operator=(typename std::conditional<__assignable<const _T1&, const _T2&>(), const std::tuple<_T1, _T2>&, const std::__nonesuch_no_braces&>::type) [with _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >; typename std::conditional<__assignable<const _T1&, const _T2&>(), const std::tuple<_T1, _T2>&, const std::__nonesuch_no_braces&>::type = const std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&]’
 1205 |       operator=(typename conditional<__assignable<const _T1&, const _T2&>(),
      |       ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1207:45: note:   no known conversion for argument 1 from ‘std::remove_reference<std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >&>::type’ {aka ‘std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >’} to ‘std::conditional<true, const std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&, const std::__nonesuch_no_braces&>::type’ {aka ‘const std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&’}
 1205 |       operator=(typename conditional<__assignable<const _T1&, const _T2&>(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1206 |          const tuple&,
      |          ~~~~~~~~~~~~~                       
 1207 |          const __nonesuch_no_braces&>::type __in)
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/c++/9.2.1/tuple:1215:7: note: candidate: ‘std::tuple<_T1, _T2>& std::tuple<_T1, _T2>::operator=(typename std::conditional<__assignable<_T1, _T2>(), std::tuple<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type) [with _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >; typename std::conditional<__assignable<_T1, _T2>(), std::tuple<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type = std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&&]’
 1215 |       operator=(typename conditional<__assignable<_T1, _T2>(),
      |       ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1217:40: note:   no known conversion for argument 1 from ‘std::remove_reference<std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >&>::type’ {aka ‘std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >’} to ‘std::conditional<true, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&&, std::__nonesuch_no_braces&&>::type’ {aka ‘std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&&’}
 1215 |       operator=(typename conditional<__assignable<_T1, _T2>(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |          tuple&&,
      |          ~~~~~~~~                       
 1217 |          __nonesuch_no_braces&&>::type __in)
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/usr/include/c++/9.2.1/tuple:1226:2: note: candidate: ‘template<class _U1, class _U2> std::__enable_if_t<__assignable<const _U1&, const _U2&>(), std::tuple<_T1, _T2>&> std::tuple<_T1, _T2>::operator=(const std::tuple<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >]’
 1226 |  operator=(const tuple<_U1, _U2>& __in)
      |  ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1226:2: note:   template argument deduction/substitution failed:
In file included from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:26,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:24,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:632:31: note:   ‘std::remove_reference<std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >&>::type’ {aka ‘std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >’} is not derived from ‘const std::tuple<_T1, _T2>’
  632 |                 res.alignment = std::move(trace_res.alignment);
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9.2.1/functional:54,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:15,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/usr/include/c++/9.2.1/tuple:1235:2: note: candidate: ‘template<class _U1, class _U2> std::__enable_if_t<__assignable<_U1, _U2>(), std::tuple<_T1, _T2>&> std::tuple<_T1, _T2>::operator=(std::tuple<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >]’
 1235 |  operator=(tuple<_U1, _U2>&& __in)
      |  ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1235:2: note:   template argument deduction/substitution failed:
In file included from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:26,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:24,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:632:31: note:   ‘std::remove_reference<std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >&>::type’ {aka ‘std::pair<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<std::span<seqan3::dna4, -1> > >’} is not derived from ‘std::tuple<_T1, _T2>’
  632 |                 res.alignment = std::move(trace_res.alignment);
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9.2.1/functional:54,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:15,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/usr/include/c++/9.2.1/tuple:1244:2: note: candidate: ‘template<class _U1, class _U2> std::__enable_if_t<__assignable<const _U1&, const _U2&>(), std::tuple<_T1, _T2>&> std::tuple<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >]’
 1244 |  operator=(const pair<_U1, _U2>& __in)
      |  ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1244:2: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/9.2.1/bits/move.h:55,
                 from /usr/include/c++/9.2.1/bits/stl_function.h:60,
                 from /usr/include/c++/9.2.1/functional:49,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:15,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/usr/include/c++/9.2.1/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using __enable_if_t = typename std::enable_if::type [with bool _Cond = std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >::__assignable<const seqan3::gap_decorator<std::span<seqan3::dna4, -1> >&, const seqan3::gap_decorator<std::span<seqan3::dna4, -1> >&>(); _Tp = std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&]’:
/usr/include/c++/9.2.1/tuple:1244:2:   required by substitution of ‘template<class _U1, class _U2> std::__enable_if_t<__assignable<const _U1&, const _U2&>(), std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&> std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >::operator=<_U1, _U2>(const std::pair<_T1, _T2>&) [with _U1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _U2 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:632:31:   required from ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::make_alignment_result(index_t, sequence1_t&, sequence2_t&) [with index_t = long unsigned int; sequence1_t = std::vector<seqan3::dna4>; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:302:67:   required from ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::compute_single_pair(size_t, sequence1_t&&, sequence2_t&&) [with sequence1_t = std::vector<seqan3::dna4>&; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}; size_t = long unsigned int]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:191:13:   required from ‘auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::operator()(indexed_sequence_pairs_t&&) [with indexed_sequence_pairs_t = ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’
/usr/include/c++/9.2.1/type_traits:2336:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&; _Args = {ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >}]’
/usr/include/c++/9.2.1/type_traits:2347:55:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:543:46:   required from ‘seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:68)> [with auto:68 = std::integral_constant<bool, false>]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:560:44:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:500:91:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_scoring_scheme(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:324:74:   required from ‘static constexpr auto seqan3::detail::alignment_configurator::configure(const config_t&) [with sequences_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:169:104:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:148:26:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&>; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/testOSS2/testOSS.cpp:18:68:   required from here
/usr/include/c++/9.2.1/type_traits:2405:11: error: no type named ‘type’ in ‘struct std::enable_if<false, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >&>’
 2405 |     using __enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~~~
In file included from /usr/include/c++/9.2.1/functional:54,
                 from /home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:15,
                 from /home/gene/Coding/testOSS2/testOSS.cpp:2:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp: In instantiation of ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::make_alignment_result(index_t, sequence1_t&, sequence2_t&) [with index_t = long unsigned int; sequence1_t = std::vector<seqan3::dna4>; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’:
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:302:67:   required from ‘constexpr auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::compute_single_pair(size_t, sequence1_t&&, sequence2_t&&) [with sequence1_t = std::vector<seqan3::dna4>&; sequence2_t = ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized>&; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}; size_t = long unsigned int]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp:191:13:   required from ‘auto seqan3::detail::alignment_algorithm<config_t, algorithm_policies_t>::operator()(indexed_sequence_pairs_t&&) [with indexed_sequence_pairs_t = ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >; algorithm_policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type>}]’
/usr/include/c++/9.2.1/type_traits:2336:26:   required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&; _Args = {ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >}]’
/usr/include/c++/9.2.1/type_traits:2347:55:   required from ‘struct std::__result_of_impl<false, false, seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&, ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> > >’
/usr/include/c++/9.2.1/type_traits:2352:12:   required from ‘struct std::__invoke_result<seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column<int>, seqan3::detail::alignment_trace_matrix_full<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>, seqan3::detail::deferred_crtp_base<seqan3::detail::find_optimum_policy, seqan3::detail::alignment_configurator::configure_free_ends_optimum_search(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_init_policy, seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:66, auto:67)> [with auto:66 = std::integral_constant<bool, false>; auto:67 = std::integral_constant<bool, false>]::policy_trait_type>}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:69, auto:70)> [with auto:69 = std::integral_constant<bool, false>; auto:70 = std::integral_constant<bool, false>]::policy_trait_type> >&, ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> > >’
/usr/include/c++/9.2.1/bits/std_function.h:375:9:   [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:543:46:   required from ‘seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]::<lambda(auto:68)> [with auto:68 = std::integral_constant<bool, false>]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:560:44:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_free_ends_initialisation(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; policies_t = {seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme<signed char> >}; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:500:91:   required from ‘static constexpr function_wrapper_t seqan3::detail::alignment_configurator::configure_scoring_scheme(const config_t&) [with function_wrapper_t = std::function<std::vector<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> >, std::allocator<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<unsigned int, int, seqan3::alignment_coordinate, seqan3::alignment_coordinate, std::tuple<seqan3::gap_decorator<std::span<seqan3::dna4, -1> >, seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized> > >, std::nullopt_t*, std::nullopt_t*> > > >(ranges::take_view<ranges::subrange<ranges::basic_iterator<ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::cursor<false> >, ranges::iter_zip_with_view<ranges::detail::indirect_zip_fn_, ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >, ranges::iota_view<int, ranges::unreachable_sentinel_t> >::sentinel<false>, ranges::subrange_kind::unsized> >)>; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/alignment_configurator.hpp:324:74:   required from ‘static constexpr auto seqan3::detail::alignment_configurator::configure(const config_t&) [with sequences_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:169:104:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = ranges::single_view<std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&> >; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/seqan3/include/seqan3/alignment/pairwise/align_pairwise.hpp:148:26:   required from ‘constexpr auto seqan3::align_pairwise(sequence_t&&, const alignment_config_t&) [with sequence_t = std::tuple<std::vector<seqan3::dna4, std::allocator<seqan3::dna4> >&, ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4, std::allocator<seqan3::dna4> > >, ranges::subrange_kind::sized>&>; alignment_config_t = seqan3::configuration<seqan3::align_cfg::mode<seqan3::detail::global_alignment_type>, seqan3::align_cfg::scoring<seqan3::nucleotide_scoring_scheme<signed char> >, seqan3::align_cfg::result<seqan3::detail::with_alignment_type, int> >]’
/home/gene/Coding/testOSS2/testOSS.cpp:18:68:   required from here
/usr/include/c++/9.2.1/tuple:1254:2: note: candidate: ‘template<class _U1, class _U2> std::__enable_if_t<__assignable<_U1, _U2>(), std::tuple<_T1, _T2>&> std::tuple<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = seqan3::gap_decorator<std::span<seqan3::dna4, -1> >; _T2 = seqan3::gap_decorator<ranges::subrange<__gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, __gnu_cxx::__normal_iterator<seqan3::dna4*, std::vector<seqan3::dna4> >, ranges::subrange_kind::sized> >]’
 1254 |  operator=(pair<_U1, _U2>&& __in)
      |  ^~~~~~~~
/usr/include/c++/9.2.1/tuple:1254:2: note:   template argument deduction/substitution failed:
make[2]: *** [CMakeFiles/testOSS.dir/build.make:63: CMakeFiles/testOSS.dir/testOSS.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/testOSS.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
@SGSSGene SGSSGene added the bug faulty or wrong behaviour of code label Feb 18, 2020
@smehringer
Copy link
Member

Does the same error occur with seqan3::views::drop instead of the stl version?

@SGSSGene
Copy link
Contributor Author

SGSSGene commented Feb 18, 2020

Does the same error occur with seqan3::views::drop instead of the stl version?

Good Idea!
No the error doesn't occur. With seqan3::views::drop it compiles as expected.

@smehringer
Copy link
Member

I thought as much.
@h-2 since we have major differences in our drop/take views compared to the stl regarding the type of infix they return I"m not sure if these kind of errors are always avoidable or if we need to document to use our view implementations?

@h-2
Copy link
Member

h-2 commented Feb 19, 2020

My changes have been incorporated into std::ranges::take and std::ranges::drop, SeqAn3 should just remove those views to avoid confusion. However, the problem documented here is in SeqAn-code. Somewhere types are deduced wrongly. It should ™️ work.

@marehr
Copy link
Member

marehr commented Feb 19, 2020

(I encountered this problem when the ranges library did the change with the safe_ranges #1471, but haven't thought to deeply about it.)

The problem in this case is manifold.

1.) The stack trace should be nicer, but unfortunately gcc<=9 does not evaluate concepts on friend functions

template <typename unaligned_seq_t> // generic template to use forwarding reference
//!\cond
requires std::assignable_from<gap_decorator &, unaligned_seq_t>
//!\endcond
friend void assign_unaligned(gap_decorator & dec, unaligned_seq_t && unaligned)
{
dec = unaligned;
}

2.) We require that other_range_t == inner_type. That means you can only assign an unaligned_sequence that is of the same type as the sequence the gap_decorator is build upon. (The main problem is that we can't go over the value type, because the gap_decorator might only hold a view and not a container, so we can internally only assign a new view of the same type.)

template <typename other_range_t>
//!\cond
requires !std::same_as<other_range_t, gap_decorator> &&
std::same_as<remove_cvref_t<other_range_t>, remove_cvref_t<inner_type>> &&
std::ranges::viewable_range<other_range_t> // at end, otherwise it competes with the move ctor
//!\endcond
gap_decorator(other_range_t && range) : ungapped_view{views::type_reduce(std::forward<inner_type>(range))}
{} // TODO (@smehringer) only works for copyable views. Has to be changed once views are not required to be copyable anymore.

3.) We re-assign in the alignment_trace function a slice of the original sequence that is in this case std::ranges::drop<std::vector<dna4>> which internally is just a std::ranges::subrange<std::vector<dna4>::iterator>.

The main problem is that our seqan3::view::slice type erases and therefore decays the type of std::ranges::subrange<std::vector<dna4>::iterator> | seqan3::view::slice to std::span<seqan3::dna4, -1>.

Thus, we do an assignment of std::span<seqan3::dna4, -1> to gap_decorator<std::ranges::subrange<std::vector<dna4>::iterator>> which does not work.

The interesting thing is why our stuff builds at all is due to the type erasure. The operation gap_decorator<sequence_t> = sequence_t{} | slice can only work iff the types sequence_t == sequence{} | slice are the same. This assumption is in general false, but works with our views, because we always try to use type erasure.

assign_unaligned(std::get<0>(aligned_seq), views::slice(database, front_coordinate.first, coordinate.col));
assign_unaligned(std::get<1>(aligned_seq), views::slice(query, front_coordinate.second, coordinate.row));


The fix should be simple, gap_decorator should be over the type sequence | views::slice. I create a PR.

@h-2
Copy link
Member

h-2 commented Feb 20, 2020

@marehr Yes, your assessment is correct in all points!

Regarding the solution I would suggest a slightly different path:

assign_unaligned should not only take the underlying view type, it should accept any safe_ranges whose begin and end can be used to construct the underlying view type.

This means that if the underlying view type of the decorator is e.g. subrange<char*, char*> and assign_unaligned is called with basic_string_view or basic_string & as argument, that would be valid and a new subrange is created internally.

Secondly, I would define gap_decorator not over | view::slice but over | view::type_reduce. This has a similar effect but is clearer (you are not actually slicing on construction). It is also what most of our views do.[1]

[1] It does mean that you won't be able to assign a slice for type combinations without type erasure, but in those cases it would be weird anyway, or not?

marehr added a commit to marehr/seqan3 that referenced this issue Feb 21, 2020
…:pair

On step to fix issue seqan#1598.

The sequence builder uses internally a pair to represent a sequence
alignment that will be implicitly converted to a std::tuple in the final
returned result.
marehr added a commit to marehr/seqan3 that referenced this issue Feb 21, 2020
@marehr marehr self-assigned this Feb 25, 2020
marehr added a commit to marehr/seqan3 that referenced this issue Feb 27, 2020
@rrahn
Copy link
Contributor

rrahn commented Mar 6, 2020

Secondly, I would define gap_decorator not over | view::slice but over | view::type_reduce. This has a similar effect but is clearer (you are not actually slicing on construction). It is also what most of our views do.[1]
[1] It does mean that you won't be able to assign a slice for type combinations without type erasure, but in those cases it would be weird anyway, or not?

But why is that? When my sequence type is not type erasable the code wouldn't work, would it?

@h-2
Copy link
Member

h-2 commented Mar 6, 2020

Sure, assign_unaligned would work, just not assign_unaligned from a slice of the underlying range type. But why should that work generally speaking?

Right now the gap_decorator requires random_access+sized so all input can be erased. If we loosen that restriction, I still don't see many use-cases for assigning the slice-type, after all, if your range is not sized, how would you create the slice anyway? Yes, there are non-random-access sized ranges, but it looks like a weird design to me.

@rrahn
Copy link
Contributor

rrahn commented Mar 6, 2020

I am not sure I understand everything.
I assume you mean this:

using dec_t = decltype(gap_decorator{std::declval<std::vector<char>&>() | views::type_reduce});
std::vector<char> my_vec{...};
dec_t instance{my_vec | views::slice}

So here the vector is type reduced to a span and slice over the vector would also deduce to a span. Accordingly, gap decorator can be assigned from another span and there is no need to define the type of the gap decorator from a sliced range.

But when my vector is in fact a reversed vector this doesn't hold anymore, does it?

using dec_t = decltype(gap_decorator{std::declval<std::vector<char>&>() | std::views::reverse});
std::vector<char> my_vec{...};
dec_t instance{my_vec | std::views::reverse | views::slice}

Reverse does not type erase on a vector and returns a random access, sized view, which is also not a borrowed range so no erasure here, right? Then assigning a sliced reverse view to a reverse view would not work. Or did something change here in the standard? Many thanks for clarifying this.

@h-2
Copy link
Member

h-2 commented Mar 6, 2020

I am suggesting that the gap_decorator's constructors and deduction guides add | views::type_reduce automatically on whatever you give it.

std::declval<std::vector<char>&>() std::span
std::declval<std::vector<char>&>() | views::slicestd::span

std::declval<std::vector<char>&>() | std::views::reverseranges::subrange
std::declval<std::vector<char>&>() | std::views::reverse | views::sliceranges::subrange

In both cases the type with and without slicing is the same. See

https://github.com/seqan/seqan3/blob/master/include/seqan3/range/views/type_reduce.hpp#L75
for where we transform random-access+sized ranges and see
http://eel.is/c++draft/range.take.overview
for how take preserves the type of the subrange (slice is just take | drop).

@rrahn
Copy link
Contributor

rrahn commented Mar 23, 2020

That is not true:

std::declval<std::vector<char>&>() | std::views::reverse → std::ranges::reverse_view<...>
std::declval<std::vector<char>&>() | std::views::reverse | views::slice → views::take_view<views::drop_view<std::ranges::reverse_view<...>>>

So adding the type_reduce does not help at all for a very regular use case. The reasons is that a view is always forwarded as is in the type_reduce closure object:

if constexpr (std::ranges::view<remove_cvref_t<urng_t>>)
. Since reverse closure object does not return a subrange but a reverse_view it will not work. This is what confused me. That means that the type_reduce closure object is not implemented correctly, if you expected any view to be converted. But also only if the reverse_view is itself passed as an lvalue-reference.

@rrahn rrahn added this to the Sprint 1 milestone Mar 27, 2020
marehr added a commit to marehr/seqan3 that referenced this issue Mar 30, 2020
rrahn added a commit that referenced this issue Mar 31, 2020
Fixes #1598: pairwise alignment does not work for some ranges
wvdtoorn pushed a commit to wvdtoorn/seqan3 that referenced this issue Apr 7, 2020
wvdtoorn pushed a commit to wvdtoorn/seqan3 that referenced this issue Apr 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug faulty or wrong behaviour of code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants