Bulat Ziganshin bulat.ziganshin at
Fri Apr 21 12:41:49 EDT 2006

Hello GHC,

i has the following function:

freezeIOUArray :: (Unboxed e, HasDefaultValue e, Ix i) => IOUArray i e -> IO (UArray i e)

when i try to use rule:

"freeze/IOUArray" freeze = freezeIOUArray

the compiler barks. i found the way that compiled:

"freeze/IOUArray" forall (x :: (forall s e i . (Unboxed e, HasDefaultValue e) => IOUArray i e)) . freeze x = freezeIOUArray x

but is this rule really works? SPJ once mentioned that type checking
is just impossible in current rules usage implementation

Best regards,
 Bulat                          mailto:Bulat.Ziganshin at

More information about the Glasgow-haskell-users mailing list