自然转型中的算子在哪里?

时间:2014-02-18 00:22:43

标签: haskell functor category-theory

自从我在Edward Kmett的旧类别附加包中看到definition of natural transformations之后,我就一直有这个问题:

-- | A natural transformation between functors f and g.
type f :~> g = forall a. f a -> g a

但是现在阅读Stephen adjunctions上的Stephen Diehl的博文,我发现了这个:

  

在我们的上下文中的自然变换将是多态函数   与两个Haskell仿函数实例f和g相关联   签名(Functor f,Functor g)=>弗拉尔f a - > g a。哪个可以   用以下类型同义词书写。

type Nat f g = forall a. f a -> g a

面对我的“我将继续无视这种”的态度,这是一记耳光。所以对于这个问题:为什么可以突然放弃仿函数约束?

1 个答案:

答案 0 :(得分:2)

Haskell中不允许对类型同义词设置约束。甚至对于数据类型,它在Haskell 2010中已被弃用。相反,约束应放在对此类值进行操作的函数上。