>>27-28
それは型パラメータじゃなくて、type classではないかと。

型パラメータというのは、
data List a = Cons a (List a) | Empty
というときのaのこと。
Cons True (Cons False Empty) :: List Bool
Cons 1 (Cons 2 Empty) :: List Int
などのように任意の型毎のリストがつくれるようになる。

head (Cons a _) = a
と定義すれば、これは型推論により、List a -> a という型が与えられ、
 List Bool にも List Int にも作用できるものになる。