Yesodの本を読んでいて、Type Familiesでいきなり躓いた。
class SafeHead a where type Content a safeHead :: a -> Maybe (Content a)
の type Content aでContentってなんで必要なの?という。
Content a :: *
なんだろうけど
a :: *
にはならんのかね?
Developing Web Applications With Haskell and Yesod
Michael Snoyman
Oreilly & Associates Inc / 2805円 ( 2012-05-04 )
Michael Snoyman
Oreilly & Associates Inc / 2805円 ( 2012-05-04 )
追記 2012.10.04
「型引数を取って結果の型を返す、型レベルの関数」という表現から抽象への理解がぱっと上がった気がする。
わかってしまうと最初の方の疑問は寝ぼけたものだった。Haskell面白い。