Почему класс Functor не имеет возвращаемой функции?
С категориальной точки зрения функтор - это пара двух карт (одна между объектами, а другая между стрелками категорий), следуя некоторым аксиомам.
Я предположил, что каждый экземпляр Functor похож на математическое определение, то есть может отображать как объекты, так и функции, но ХаскеллаFunctor
класс имеет только функциюfmap
какие карты функций.
Почему так?
UPD Другими словами:
Каждый тип монадыM
имеет функциюreturn :: a -> M a
.
И тип функтораF
не имеет функцииreturn :: a -> F a
, но толькоF x
конструктор.