GHCi を使用して、次のことを行います。
prelude> let lol [] = []
prelude> let lol (x:xs) = (lol xs) ++ [x]
評価しようとすると
prelude> lol [1, 2, 3]
私は得る
Exception: <interactive>:3:5-32: Non-exhaustive patterns in function lol
私は問題を理解していると思います (1 つの要素が一致しないリスト?) が、x:xs を x:[] として一致できない理由がわかりません。