我需要幫助理解來自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類型的線程,但我不確定是否描述了一個關係適用於第一個參數,或者整個函數,或者誰知道......
在其他情況下,我已經看到存在的量化,這句話以一個句點結束,但在這裏以 - >結尾,這是否意義重大?
我想我已經明白了。你開始的類型簽名的其餘部分是:(f a b) - > Thrist g b c - >(f a c)。如果是這樣,我想他們可以一樣輕鬆$>等。 – 2010-12-21 06:32:58
@Jonathan Fischoff:是的。使用的符號只是暗示性的,很像傳統的'm'用於一個類型變量,可能是Monad的一個實例。 – 2010-12-21 06:35:29