@@ -123,7 +123,7 @@ bytesInArray n = n `shiftL` 1
123-- crash on an out-of-bounds access.
123-- crash on an out-of-bounds access.
124unsafeIndex :: Array -> Int -> Word16
124unsafeIndex :: Array -> Int -> Word16
125unsafeIndex Array{..} i@(I# i#) =
125unsafeIndex Array{..} i@(I# i#) =
126− CHECK_BOUNDS("unsafeIndex",len,i)
126+ CHECK_BOUNDS("unsafeIndex",aLen,i)
127 case indexWord16Array# aBA i# of r# -> (W16# r#)
127 case indexWord16Array# aBA i# of r# -> (W16# r#)
128{-# INLINE unsafeIndex #-}
128{-# INLINE unsafeIndex #-}
@@ -131,7 +131,7 @@ unsafeIndex Array{..} i@(I# i#) =
131-- crash on an out-of-bounds access.
131-- crash on an out-of-bounds access.
132unsafeIndexWord :: Array -> Int -> Word
132unsafeIndexWord :: Array -> Int -> Word
133unsafeIndexWord Array{..} i@(I# i#) =
133unsafeIndexWord Array{..} i@(I# i#) =
134− CHECK_BOUNDS("unsafeIndexWord",len,i)
134+ CHECK_BOUNDS("unsafeIndexWord",aLen`div`wordFactor,i)
135 case indexWordArray# aBA i# of r# -> (W# r#)
135 case indexWordArray# aBA i# of r# -> (W# r#)
136{-# INLINE unsafeIndexWord #-}
136{-# INLINE unsafeIndexWord #-}
@@ -139,7 +139,7 @@ unsafeIndexWord Array{..} i@(I# i#) =
139-- crash on an out-of-bounds access.
139-- crash on an out-of-bounds access.
140unsafeRead :: MArray s -> Int -> ST s Word16
140unsafeRead :: MArray s -> Int -> ST s Word16
141unsafeRead MArray{..} i@(I# i#) = ST $ \s# ->
141unsafeRead MArray{..} i@(I# i#) = ST $ \s# ->
142− CHECK_BOUNDS("unsafeRead",len,i)
142+ CHECK_BOUNDS("unsafeRead",maLen,i)
143 case readWord16Array# maBA i# s# of
143 case readWord16Array# maBA i# s# of
144 (# s2#, r# #) -> (# s2#, W16# r# #)
144 (# s2#, r# #) -> (# s2#, W16# r# #)
145{-# INLINE unsafeRead #-}
145{-# INLINE unsafeRead #-}
@@ -148,7 +148,7 @@ unsafeRead MArray{..} i@(I# i#) = ST $ \s# ->
148-- on an out-of-bounds access.
148-- on an out-of-bounds access.
149unsafeWrite :: MArray s -> Int -> Word16 -> ST s ()
149unsafeWrite :: MArray s -> Int -> Word16 -> ST s ()
150unsafeWrite MArray{..} i@(I# i#) (W16# e#) = ST $ \s1# ->
150unsafeWrite MArray{..} i@(I# i#) (W16# e#) = ST $ \s1# ->
151− CHECK_BOUNDS("unsafeWrite",len,i)
151+ CHECK_BOUNDS("unsafeWrite",maLen,i)
152 case writeWord16Array# maBA i# e# s1# of
152 case writeWord16Array# maBA i# e# s1# of
153 s2# -> (# s2#, () #)
153 s2# -> (# s2#, () #)
154{-# INLINE unsafeWrite #-}
154{-# INLINE unsafeWrite #-}
@@ -157,7 +157,7 @@ unsafeWrite MArray{..} i@(I# i#) (W16# e#) = ST $ \s1# ->
157-- crash on an out-of-bounds access.
157-- crash on an out-of-bounds access.
158unsafeReadWord :: MArray s -> Int -> ST s Word
158unsafeReadWord :: MArray s -> Int -> ST s Word
159unsafeReadWord MArray{..} i@(I# i#) = ST $ \s# ->
159unsafeReadWord MArray{..} i@(I# i#) = ST $ \s# ->
160− CHECK_BOUNDS("unsafeRead64",len,i)
160+ CHECK_BOUNDS("unsafeRead64",maLen`div`wordFactor,i)
161 case readWordArray# maBA i# s# of
161 case readWordArray# maBA i# s# of
162 (# s2#, r# #) -> (# s2#, W# r# #)
162 (# s2#, r# #) -> (# s2#, W# r# #)
163{-# INLINE unsafeReadWord #-}
163{-# INLINE unsafeReadWord #-}
@@ -166,7 +166,7 @@ unsafeReadWord MArray{..} i@(I# i#) = ST $ \s# ->
166-- on an out-of-bounds access.
166-- on an out-of-bounds access.
167unsafeWriteWord :: MArray s -> Int -> Word -> ST s ()
167unsafeWriteWord :: MArray s -> Int -> Word -> ST s ()
168unsafeWriteWord MArray{..} i@(I# i#) (W# e#) = ST $ \s1# ->
168unsafeWriteWord MArray{..} i@(I# i#) (W# e#) = ST $ \s1# ->
169− CHECK_BOUNDS("unsafeWriteWord",len,i)
169+ CHECK_BOUNDS("unsafeWriteWord",maLen`div`wordFactor,i)
170 case writeWordArray# maBA i# e# s1# of
170 case writeWordArray# maBA i# e# s1# of
171 s2# -> (# s2#, () #)
171 s2# -> (# s2#, () #)
172{-# INLINE unsafeWriteWord #-}
172{-# INLINE unsafeWriteWord #-}