>>721
俺は共通する要素とか集合って考えるより、
特定の型に依存しない性質を含んだ関数って考えた方がピンとくるな。

>で、その共通する要素って、ボトム以外に具体的にどういうものがあるのかな
要するにT aという型のコンテナTに対して、格納しているa型の値に直接触れずに、
コンテナの構造だけを変えたり(flatten :: forall a. Tree a -> [a]、tail :: forall a. [a] -> [a]とか)、
コンテナ自体の情報を返す(length :: forall a. [a] -> Int)類の関数。
特にリストのhead、(!)とか、タプルならfst、sndみたいに値を取り出すような関数も、
中身に触れなければ型に依存しない性質は保たれるってのは重要。