GADT
この前、"必ず引数を2倍した値を返す関数"みたいなものを型で表せないかなーとか考えてた。
double :: Num a => a -> Nibai a
みたいな。適当だけど。
型の上で足し算かけ算はできた(http://d.hatena.ne.jp/zyxwv/20070730)ので、それを利用すればいいのかなーとか考えてたんだけど、それには GADT を使えばいいと id:syd_syd さんがいつものごとく颯爽と教えてくれた。さすが。
というわけでしばらく探してみたんだけど、どうもそれっぽいのが見つからない。というかキーワードがわからんのでうまく探せない。院試が終わったらまた探してみるか。
ていうか明日はついに試験じゃないかぁぁ。知ってたけど。