Описание тега distributive

Категориальный двойник Traversable (Data.Distributive в Haskell). Это структура, которая основана на Functor и является выражением распределительных законов (арифметическим примером является (b + c) = ab + ac).

Из-за отсутствия в Haskell нетривиальных комоноидов мы можем ограничиться требованием использования Функтора, а не некоторого класса Coapplicative. Категорически каждый дистрибутивный функтор на самом деле является сопряженным справа, и поэтому он должен быть представимым endofunctor и сохранять все ограничения. Это причудливый способ сказать, что он изоморфен (->) x для некоторого x.

Для того, чтобы контейнер можно было распространять, он должен иметь способ последовательно архивировать потенциально бесконечное число своих копий. Это фактически означает, что дырки во всех значениях этого типа должны иметь одинаковую мощность, векторы фиксированного размера, бесконечные потоки, функции и т. Д. И не иметь никакой дополнительной информации, чтобы попытаться объединить вместе.

См. Data.Traversable Эдвард Кметт.