generated at
Hask圏

Hask圏
対象
kind * である型
ex. Int , String
例えば Maybe はそのままだと *->* なので異なるが、 Int などを型引数にとって Maybe Int とすることでkindが * になり、Hask圏の対象となる
関数
ex. f :: A -> B
合成
(.)
恒等射
id を各型に制限したもの
Haskellのidは多相的だが、本来の恒等射は対象ごとにあるので。
id :: a -> a だが、型ごとに idInt :: Int -> Int と定義していく感じ


Hask圏はCCC
(->) A B も型であるのでHask圏の対象である
(->) 型コンストラクタだから
射の集合 (->) A B 、つまり\mathrm{Hask}(A,B)も対象になる
これはCCCの性質


Hask圏以外にも圏を定義できる




参考


もうすこし圏論がわかってから読み返したい2019/12/15
Hask圏は圏でないということと、その理由
必要呼びとundefindのせいらしい
Colistとかcodatatypeってなに?
enrichmentってなに?

Hask is not a category