旧来の言語では、ふつうのリストと遅延リストが区別され、
両方に対応するためほとんど同じような関数を二度も書かされるという、
おかしな事態に陥っていました。
そこで、ふつうのリストと遅延リストを区別しない言語が開発されました。

ある日、reverseが非効率なことに不満を持ったプログラマーが
効率的にreverseできるリストを発明し、普通のリストと区別することにしました。