コメントが/* */か//か#か%か'か
というのはどうでもいいんですが

Haskellの代数データ型と
オブジェクト指向の継承の違いがうまく整理できません