* → *
な型 * -> (* -> *)
なども含む *
は多相であり制限はない関数.hsf :: (a -> a) -> Bool -- 高階多相関数
f :: (Int -> Int) -> Bool -- 高階多相関数ではない高階関数
型.hs-- この記述は架空
Hoge f a :: (* -> *) -> * -> * -- 高階多相型
Show a => Hoge a :: (Show => *) -> * -- 高階多相型ではない高階型(?) というよりも「制限のある高階多相型」かな