・自然変換 Listのreverse リストの反転は自然変換になっているという初等的でありがたい例。 応用として、cdrとかもいいんじゃないかと発言したけど、空リストの扱いが困るから微妙。でも同じ感じで結構考えられそう。 http://d.hatena.ne.jp/oto-oto-oto/20090524/1243181055 これで思い出しました。 「Real World Haskell」の2章 Types and Functions の Polymorphism in Haskell のところで紹介されている Philip Wadler の論文“Theorems for free!”によると 型 [a] -> [a] を持つ関数 r は必ず map f . r = r . map f という性質を満たすので reverse や tail だけではなく init など [a] -> [a