Мне нужна помощь в понимании сигнатуры этого типа, взятой из пакета Thrist.
import Prelude hiding ((.), id)
import Control.Category
import Data.Monoid
import Control.Arrow
import Control.Monad
foldlThirst :: (forall j k . (a +> j) -> (j ~> k) -> (a +> k))
-> (a +> b)
-> Thrist (~>) b c
-> (a +> c)
Я запутался в нескольких вещах.
Во-первых, что это за символы +> и ~>? Где они задокументированы и как называются?
Но мое замешательство на этом заканчивается. Я понимаю, что количественная оценка описывает распределение типов Thrist, но я не уверен, описывает ли это связь, которая выполняется для первого аргумента, или для всей функции, или кто знает ...
В других случаях, когда я видели количественную оценку существования, фраза заканчивается точкой, но здесь она заканчивается ->, это важно?