@@ -29,15 +29,15 @@ module Data.Text.Lazy.Builder
31import Control.Exception (assert)
31import Control.Exception (assert)
32−import Control.Monad.ST
32+import Control.Monad.ST (ST, runST)
33import Data.Bits ((.&.))
33import Data.Bits ((.&.))
34import Data.Char (ord)
34import Data.Char (ord)
35import Data.Monoid (Monoid(..))
35import Data.Monoid (Monoid(..))
36import Data.Text.Internal (Text(..))
36import Data.Text.Internal (Text(..))
37import Data.Text.Lazy.Internal (defaultChunkSize)
37import Data.Text.Lazy.Internal (defaultChunkSize)
38+import Data.Text.Unsafe (inlineInterleaveST)
38import Data.Text.UnsafeShift (shiftR)
39import Data.Text.UnsafeShift (shiftR)
39−import Data.Word
40+import Data.Word (Word16)
40−import GHC.ST (ST(..))
41import Prelude hiding (map, putChar)
41import Prelude hiding (map, putChar)
43import qualified Data.Text as S
43import qualified Data.Text as S
@@ -215,13 +215,6 @@ newBuffer size = do
215 return $! Buffer arr 0 0 size
215 return $! Buffer arr 0 0 size
216{-# INLINE newBuffer #-}
216{-# INLINE newBuffer #-}
218−inlineInterleaveST :: ST s a -> ST s a
219−inlineInterleaveST (ST m) = ST $ \ s ->
220− let r = case m s of (# _, res #) -> res in (# s, r #)
221−{-# INLINE inlineInterleaveST #-}
223−------------------------------------------------------------------------
225-- | Unsafely copy the elements of an array.
218-- | Unsafely copy the elements of an array.
226unsafeCopy :: A.Elt e =>
219unsafeCopy :: A.Elt e =>
227 A.Array e -> Int -> A.MArray s e -> Int -> Int -> ST s ()
220 A.Array e -> Int -> A.MArray s e -> Int -> Int -> ST s ()