Por que os algoritmos dos intervalos não são compatíveis com os iteradores do std?

#include <vector>
#include <iostream>
#include <range/v3/all.hpp>

int main()
{
    auto coll = std::vector{ 1, 2, 3 };

    ranges::copy(
        coll,
        ranges::ostream_iterator<int>{  std::cout, ", " }
    ); // ok

    ranges::copy(
        coll, 
        std::ostream_iterator<int>{ std::cout, ", " }
    ); // error 
}

O problema é mostrado no código acima. eu usoranges-v3-0.3.7.

Para mim, o algoritmo genéricocopy não deve se preocupar com o tipo de iterador de destino, desde que atenda aos requisitos do iterador de saída.

Se sim, por que os algoritmos dos intervalos não são compatíveis com os iteradores do std?

questionAnswers(1)

yourAnswerToTheQuestion