そもそも >>469 に"Haskellでは空リストがリストの終わりを表す"と言ったヤツが勘違いしていると思う。

おそらく
[1,2,3] = 1 : [2, 3] = 1 : ( 2 : [3] ) = 1 : ( 2 : ( 3 : [] ) )
と分解できるから[]が終端なんだと言ったんだろうけど、
これは単に空リスト[]の先頭に3, 2, 1を順に追加していったものがリスト[1,2,3]だってこと。
もしくは、(有限)リストから先頭を取り除く操作をしていった場合、空リスト[]に行き着いた時点でそれ以上先頭を取り除くことが出来なくなるってこと。