
21 Apr
2006
21 Apr
'06
12:41 p.m.
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: {-# RULES "freeze/IOUArray" freeze = freezeIOUArray #-} the compiler barks. i found the way that compiled: {-# RULES "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@gmail.com