LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

Да что тут не понять? HList в виде (a, (b, ())) можно интерпретировать как тупл из двух элементов.

Если программист хочет работать с туплом, но передаёт его в функцию, принимающую HList, то это - ошибка. Как передать long long в функцию, принимающую int, и ожидать, что компилятор догадается о намерениях.

Поэтому HList во frunk’е сделан отдельным типом. Я, для иллюстрации, использовал более компактное в записи представление в виде тупла определённой структуры.

Рассуждения об отсутствии взаимооднозначного соответствия (которое присутствует), сильно помешали понять, что именно не нравится.

Исправление red75prim, :

Да что тут не понять? HList в виде (a, (b, ())) можно интерпретировать как тупл из двух элементов.

Если программист хочет работать с туплом, но передаёт его в функцию, принимающую HList, то это - ошибка. Как передать long long в функцию, принимающую int, и ожидать, что компилятор догадается о намерениях.

Поэтому HList во frunk’е сделан отдельным типом. Я, для иллюстрации, использовал более компактное в записи представление в виде тупла определённой структуры.

Исходная версия red75prim, :

Да что тут не понять? HList в виде (a, (b, ())) можно интерпретировать как тупл из двух элементов.

Если программист хочет работать с туплом, но передаёт его в функцию, принимающую HList, то это - ошибка. Как передать long long в функцию, принимающую int, и ожидать, что компилятор догадается о намерениях.