Hask圏
Hask圏
対象
ex. Int, String
例えばMaybeはそのままだと*->*なので異なるが、Intなどを型引数にとってMaybe Intとすることでkindが*になり、Hask圏の対象となる
射
関数
ex. f :: A -> B
合成
(.)
恒等射
idを各型に制限したもの
Haskellのidは多相的だが、本来の恒等射は対象ごとにあるので。
id :: a -> aだが、型ごとにidInt :: Int -> Intと定義していく感じ
(->) A Bも型であるのでHask圏の対象である
射の集合(->) A B、つまり$ \mathrm{Hask}(A,B)も対象になる
Hask圏以外にも圏を定義できる
参考
もうすこし圏論がわかってから読み返したい2019/12/15
Hask圏は圏でないということと、その理由
Colistとかcodatatypeってなに?
enrichmentってなに?
Hask is not a category