@@ -1,9 +1,59 @@
1{-# LANGUAGE ExistentialQuantification, BangPatterns, MagicHash #-}
1{-# LANGUAGE ExistentialQuantification, BangPatterns, MagicHash #-}
3−module Data.Text.Fusion where
3+module Data.Text.Fusion
5−import Prelude hiding (map, tail, head, foldr, filter,concat)
53+import Prelude hiding
6−
54+ (map, tail, head, foldr, filter, concat, last, init, null, length, foldl,
55+ foldl1, foldr1, concatMap, any, all, maximum, minimum, take, drop,
56+ takeWhile, dropWhile, elem, zipWith)
7import Data.Char (ord)
57import Data.Char (ord)
8import Control.Exception(assert)
58import Control.Exception(assert)
9import Control.Monad(liftM2)
59import Control.Monad(liftM2)
@@ -19,7 +69,6 @@ import Foreign.ForeignPtr(withForeignPtr,ForeignPtr)
19import Foreign.Storable(pokeByteOff)
69import Foreign.Storable(pokeByteOff)
20import GHC.Exts (Int(..), (+#))
70import GHC.Exts (Int(..), (+#))
21import System.IO.Unsafe(unsafePerformIO)
71import System.IO.Unsafe(unsafePerformIO)
23import Data.Text.Internal(Text(..),empty)
72import Data.Text.Internal(Text(..),empty)
24import Data.Text.UnsafeChar(unsafeChr,unsafeChr8,unsafeChr32)
73import Data.Text.UnsafeChar(unsafeChr,unsafeChr8,unsafeChr32)
25import qualified Data.Text.Utf8 as U8
74import qualified Data.Text.Utf8 as U8
@@ -35,8 +84,6 @@ data T4 a b c d = T4 !a !b !c !d
36data Switch = S1 | S2
85data Switch = S1 | S2
38−data EitherS a b = LeftS !a | RightS !b
40data Stream a = forall s. Stream (s -> Step s a) !s {-# UNPACK #-}!Int
87data Stream a = forall s. Stream (s -> Step s a) !s {-# UNPACK #-}!Int
42data Step s a = Done
89data Step s a = Done