import Data.Array
import Data.Map

f :: Array Int Int -> Int -> Int
f a i = a ! i

これ、(!) がどっちのモジュール由来かわからんってエラーが出るんだが、
なんで推論しないんだろうな。

もし (!) が、Array と Map がともにインスタンスになっている共通のクラスのメソッドなら、
ちゃんとどっちの型のものか推論してくれるのに。