GADT

この前、"必ず引数を2倍した値を返す関数"みたいなものを型で表せないかなーとか考えてた。

double :: Num a => a -> Nibai a

みたいな。適当だけど。
型の上で足し算かけ算はできた(http://d.hatena.ne.jp/zyxwv/20070730)ので、それを利用すればいいのかなーとか考えてたんだけど、それには GADT を使えばいいと id:syd_syd さんがいつものごとく颯爽と教えてくれた。さすが。

というわけでしばらく探してみたんだけど、どうもそれっぽいのが見つからない。というかキーワードがわからんのでうまく探せない。院試が終わったらまた探してみるか。


ていうか明日はついに試験じゃないかぁぁ。知ってたけど。