List化関手同士の自然変換

・自然変換
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] 型の関数はすべて List化(的な)関手同士間の自然変換になりそうです。