@@ -50,10 +50,10 @@ iter :: Text -> Int -> (Char,Int)
5050iter (Text arr off len) i
5151 | m < 0xD800 || m > 0xDBFF = (unsafeChr m, 1)
5252 | otherwise = (chr2 m n, 2)
53− where m = assert (i < len) $ A.unsafeIndex arr j
54− n = assert (j < len) $ A.unsafeIndex arr k
55− j = off + i
56− k = j + 1
53+ where m = assert (i < len) $ A.unsafeIndex arr j
54+ n = assert (i + 1 < len) $ A.unsafeIndex arr k
55+ j = assert (i >= 0) $ off + i
56+ k = j + 1
5757{-# INLINE iter #-}
5858
5959-- | /O(1)/ Iterate one step through a UTF-16 array, returning the