Haskellの型システムについて

今後も使う予定なのでメモしとく。
詳細は↓の文章を参照してください:
http://en.wikibooks.org/wiki/Haskell/Category_theory

Haskellの型システムが圏であり、ここでHaskと名をつける。
Haskの要素は下表通り:

Category Hask
objects 型の集合{Int, Double, String...}
morphisms 関数: f:: a -> b
domain 上記fの型a
codomain 上記fの型b
composition 関数の結合: f . g → (f . g) . h = f . (g . h)
id id :: a -> a

特に忘れがちなのは:
objectは型であり、データの実体ではありません。
objectは型であり、データの実体ではありません。
大事なことなので(ry

Functor篇:

Category theory Haskell
funtor: F Functor classに属する型F
F:\cal{A}\to\cal{B} F: a -> F a
Ff fmap f
F{\small id}{\tiny A} = id\small FA fmap id
F(f;g)=Ff;Fg fmap (g . f) = fmap g . fmap f

Monad篇:
もなどってなに?