*
である型 Int
, String
Maybe
はそのままだと *->*
なので異なるが、 Int
などを型引数にとって Maybe Int
とすることでkindが *
になり、Hask圏の対象となる f :: A -> B
(.)
id
を各型に制限したもの id :: a -> a
だが、型ごとに idInt :: Int -> Int
と定義していく感じ (->) A B
も型であるのでHask圏の対象である (->)
は型コンストラクタだから (->) A B
、つまり\mathrm{Hask}(A,B)も対象になる