CIntでArray

Haskellで配列が使いたくなったので,Data.Arrayを使ってみる.
諸事情で,ArrayのindexにはCIntを使いたかったのですが,CIntはIxクラスのインスタンスじゃないようです.
仕方がないので,自分でIxクラスのインスタンス宣言を書く事に.

rangeとinRangeの宣言を書いたら,warningが出なくなったので安心していたら,実行時にエラーも吐かずに止まります.
indexの宣言も書いたらうまくいきました.自動導出でうまくいかなかったのでしょうか? よく分かりません.
・Haskell/小ネタ

instance Ix CInt where
    range (m,n) = [m..n]
    inRange (m,n) i = m <= i && i <= n
    index b@(m,n) i
        | inRange b i   =  fromIntegral (i - m)
        | otherwise     =  error \"Ix.index: Index out of range.\"

やってた事
Telnetでライフゲーム
Telnetでワールドカップに触発されました^^;