每个类型构造函数(`Type -> Type`)都是某种函子

Lab*_*kak 2 haskell category-theory

众所周知,带有 kind 的类型构造函数Type -> Type(在系统 F-omega 中)仅Functor当它实现了 function 时才是 a (a -> b) -> f a -> f b。虽然这是一个无法无天的函子,但它也应该遵守函子法则(保留组成和同一性)。因此类型构造函数Type -> Type并不总是函子。但这仅涉及类型范畴中的协变内函子。还有逆变函子和更多种类的函子。

我的问题:任何类型构造函数/函数是否具有Type -> Type某种(类别理论)合法函子(协变、逆变或其他类型)?

Sjo*_*her 5

是的,它始终是 Haskell 类型的离散类别(仅具有恒等箭头的类别)的函子。它为每个对象分配a一个对象f af a -> f a对于每个箭头(仅是恒等函数),我们自动有一个箭头,即恒等函数a -> a。这些定律是微不足道的,因为正在进行的唯一组合是恒等箭头与自身组合。