为什么静态箭头概括了箭头?

Zhi*_*gor 5 haskell arrows category-theory applicative

众所周知,Applicative概括Arrows。在习语是健忘,箭都一丝不苟,单子是混杂由Sam林德利,菲利普·沃德勒和Jeremy Yallop纸据说Applicative是相当于静态箭头,这是其下述同构持有箭头:

arr a b :<->: arr () (a -> b)

据我所知,它可以通过以下方式说明:

注:newtype Identity a = Id { runId :: a }

Klesli Identity是一个静态箭头,因为它包裹k :: a -> Identity b。同构只是删除或添加包装器。

Kleilsi Maybe不是k = Kleisli (const Nothing)存在的静态箭头- 所有f :: a -> bs 都对应于Just . f,并且k在同构中没有位置。

但在同一时间都Kleisli IdentityKleisli MaybeArrow实例。因此,我看不出泛化是如何工作的。

Wikibooks上的Haskell/Understanding Arrows 教程中,他们静态态射注意以下几点

这两个概念通常分别称为静态箭头和 Kleisli 箭头。由于使用具有两种微妙不同含义的“箭头”一词会使本文非常混乱,因此我们选择了“态射”,它是这种替代含义的同义词。

这是我迄今为止唯一的线索 - 我是否混淆了 HaskellArrow和箭头?

那么,这种层次结构是如何运作的呢?这个Applicative财产是如何形式化/证明的?