Мне удалось отобразить определение Функтора из теории категорий на определение Хаскелла следующим образом: поскольку объекты из Hask являются типами, функтор F
-  сопоставляет каждый тип aHaskс новым типомF a, грубо говоря, добавив к нему "F".
-  отображает каждый морфизм a -> bofHaskна новый морфизмF a -> F bс помощьюfmap :: (a -> b) -> (f a -> f b).
До сих пор так хорошо. Теперь я добираюсь до Applicative и не могу найти упоминания о таком понятии в учебниках. Посмотрев, что он добавляет к Functor, ap :: f (a -> b) -> f a -> f b, я попытался найти свое собственное определение.
Во-первых, я заметил, что поскольку (->) также является типом, его морфизмы Hask тоже являются его объектами. В свете этого я сделал предложение, что аппликативный функтор является функтором, который также может отображать "стрелки" -объекты категории источников в морфизмы адресата.
Это правильная интуиция? Можете ли вы дать более формальное и строгое определение?
