runtime effect of polymorphic Array.!

Johannes Waldmann joe@isun.informatik.uni-leipzig.de
Wed, 28 Nov 2001 15:06:42 +0100 (MET)


Of course (!) is polymorphic

  (!) :: Ix a => Array a b -> a -> b

but on the other hand the GHC manual says

  Overloaded functions are not your friend:
    Haskell's overloading (using type classes) is elegant, 
    neat, etc., etc., but
    it is death to performance if left to linger in an inner loop. 

I assume (!) is inlined and specialized by GHC, 
but what does  hugs  do? Does it build and pass around
dictionaries all the time I index an array?

(In my case, I am forced to use (run)hugs.)

Just curious,
-- 
-- Johannes Waldmann ---- http://www.informatik.uni-leipzig.de/~joe/ --
-- joe@informatik.uni-leipzig.de -- phone/fax (+49) 341 9732 204/252 --