Phantom types

前々から

int a[10];
int x = 4;
int y = 6;
return a[x+y];

こういうのコンパイルエラーにできないかと思ってたんだけど、Phantom typeとかそれらへんがそれっぽいな。
http://www.haskell.org/haskellwiki/Phantom_type
http://www.haskell.org/haskellwiki/Type_arithmetic
冬休みの宿題だな。冬休みの宿題多すぎ。