{-# OPTIONS_GHC -fglasgow-exts #-}
import Data.ByteString.Unsafe(unsafePackAddressLen)
import GHC.Prim(byteArrayContents#)
import System.IO.Unsafe(unsafePerformIO)

uArrayToByteString :: UArray Int Word8 -> ByteString
uArrayToByteString arr =
let !(UArray _ _ n barr) = arr
in unsafePerformIO $ unsafePackAddressLen n (byteArrayContents# barr)