CategoryとArrowと圏論
真面目にやるためには
CCCを完全に理解していないといけない気もしている

Hask圏では、対象を型、射を関数とみなしていたが、
inputをoutputに「どのように変換するか」がインスタンスとなるので、
Categoryのインスタンスが圏
Categoryそのものは「圏の定義」なので、圏よりも上の次元の概念である
例えば、
->
で構成されたCategoryが、
Hask圏である
つまり、Hask圏は、「関数の圏」である
arr
が圏間の関手
敢えて
Hask圏と比較して書いたほうがわかりやすいか?
比較 | Categoryのinstance | Hask圏 |
対象 | 型 | 型 |
射 | arrow | 関数(->) |
関手 | arr | 自己関手fmap |
「Categoryのinstance」の一例がHask圏、当たり前に前者のほうが一般的
雑メモ
Arrowという型クラスがある
Arrow型クラスのインスタンスとなる型は圏になる
この圏はHask圏に限らない