X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FArray%2FIO%2FInternals.hs;h=245acfcc0ad9d445b43158613c36b73f94bc228e;hb=ebc073c8f912ef7be20ec5d9fa22dc7ddc0b53e2;hp=17f0f37b91d6674abfa462b6dd92954a9d5da6b1;hpb=d539a9457e2c79a9f13744d073d3f253ea2fb33e;p=haskell-directory.git diff --git a/Data/Array/IO/Internals.hs b/Data/Array/IO/Internals.hs index 17f0f37..245acfc 100644 --- a/Data/Array/IO/Internals.hs +++ b/Data/Array/IO/Internals.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -#include "HsBase.h" #-} +{-# OPTIONS_GHC -#include "HsBase.h" #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Array.IO.Internal @@ -41,12 +41,9 @@ import GHC.IOBase import GHC.Base #endif /* __GLASGOW_HASKELL__ */ -iOArrayTc :: TyCon -iOArrayTc = mkTyCon "IOArray" +#include "Typeable.h" -instance (Typeable a, Typeable b) => Typeable (IOArray a b) where - typeOf a = mkAppTy iOArrayTc [typeOf ((undefined :: IOArray a b -> a) a), - typeOf ((undefined :: IOArray a b -> b) a)] +INSTANCE_TYPEABLE2(IOArray,iOArrayTc,"IOArray") ----------------------------------------------------------------------------- -- | Instance declarations for 'IOArray's @@ -80,12 +77,7 @@ instance MArray IOArray e IO where -- newtype IOUArray i e = IOUArray (STUArray RealWorld i e) -iOUArrayTc :: TyCon -iOUArrayTc = mkTyCon "IOUArray" - -instance (Typeable a, Typeable b) => Typeable (IOUArray a b) where - typeOf a = mkAppTy iOUArrayTc [typeOf ((undefined :: IOUArray a b -> a) a), - typeOf ((undefined :: IOUArray a b -> b) a)] +INSTANCE_TYPEABLE2(IOUArray,iOUArrayTc,"IOUArray") instance HasBounds IOUArray where {-# INLINE bounds #-} @@ -127,7 +119,6 @@ instance MArray IOUArray Int IO where {-# INLINE unsafeWrite #-} unsafeWrite (IOUArray marr) i e = stToIO (unsafeWrite marr i e) -#ifdef __GLASGOW_HASKELL__ instance MArray IOUArray Word IO where {-# INLINE newArray #-} newArray lu init = stToIO $ do @@ -139,7 +130,6 @@ instance MArray IOUArray Word IO where unsafeRead (IOUArray marr) i = stToIO (unsafeRead marr i) {-# INLINE unsafeWrite #-} unsafeWrite (IOUArray marr) i e = stToIO (unsafeWrite marr i e) -#endif instance MArray IOUArray (Ptr a) IO where {-# INLINE newArray #-} @@ -304,3 +294,4 @@ castIOUArray :: IOUArray ix a -> IO (IOUArray ix b) castIOUArray (IOUArray marr) = stToIO $ do marr' <- castSTUArray marr return (IOUArray marr') +