on master help sign in
Some tidyup and Haddocks.
9954482Bryan O'Sullivan
Data/Text.hs+14−14
@@ -103,29 +103,29 @@ module Data.Text
103 , readFile
103 , readFile
104 ) where
104 ) where
105
105
106−import Prelude (Char,Bool,Int,Maybe,String,
106+import Prelude (Char, Bool, Int, Maybe, String,
107− Eq,(==),(++),error,
107+ Eq, (==), (++), error,
108− Show,showsPrec,
108+ Show, showsPrec,
109− Read,readsPrec,
109+ Read, readsPrec,
110− (&&),(||),(+),(-),(<),(>),(<=),(>=),(.),(>>=),
110+ (&&), (||), (+), (-), (<), (>), (<=), (>=), (.), (>>=),
111− return,otherwise,
111+ return, otherwise,
112 IO, FilePath)
112 IO, FilePath)
113import Data.Char (isSpace)
113import Data.Char (isSpace)
114−import Control.Monad.ST(ST)
114+import Control.Monad.ST (ST)
115import qualified Data.Text.Array as A
115import qualified Data.Text.Array as A
116import qualified Data.ByteString as B
116import qualified Data.ByteString as B
117−import Data.ByteString(ByteString)
117+import Data.ByteString (ByteString)
118import qualified Data.List as L
118import qualified Data.List as L
119−import Data.Monoid(Monoid(..))
119+import Data.Monoid (Monoid(..))
120−import Data.Word(Word16)
120+import Data.Word (Word16)
121import Data.String (IsString(..))
121import Data.String (IsString(..))
122
122
123import qualified Data.Text.Fusion as S
123import qualified Data.Text.Fusion as S
124−import Data.Text.Fusion (Stream(..),Step(..),Encoding(..),
124+import Data.Text.Fusion (Stream(..), Step(..), Encoding(..),
125− stream,unstream,stream_bs,unstream_bs,restream)
125+ stream, unstream, stream_bs, unstream_bs, restream)
126−import Data.Text.Internal(Text(..),empty)
126+import Data.Text.Internal (Text(..), empty)
127import qualified Prelude as P
127import qualified Prelude as P
128−import Data.Text.UnsafeChar(unsafeChr)
128+import Data.Text.UnsafeChar (unsafeChr)
129import qualified Data.Text.Utf16 as U16
129import qualified Data.Text.Utf16 as U16
130
130
131-- $fusion
131-- $fusion
Data/Text/Array.hs+1−1
@@ -60,7 +60,7 @@ import Hugs.ST (ST(..), runST)
60# error not implemented for this compiler
60# error not implemented for this compiler
61#endif
61#endif
62
62
63−import Data.Typeable
63+import Data.Typeable (Typeable1(..), Typeable2(..), TyCon, mkTyCon, mkTyConApp)
64import Data.Word (Word16)
64import Data.Word (Word16)
65import Prelude hiding (length, read)
65import Prelude hiding (length, read)
66
66
Data/Text/Fusion.hs+49−13
@@ -1,16 +1,34 @@
1{-# LANGUAGE ExistentialQuantification, BangPatterns, MagicHash #-}
1{-# LANGUAGE ExistentialQuantification, BangPatterns, MagicHash #-}
2
2
3+-- |
4+-- Module : Data.Text.Fusion
5+-- Copyright : (c) Tom Harper 2008-2009,
6+-- (c) Bryan O'Sullivan 2009,
7+-- (c) Duncan Coutts 2009
8+--
9+-- License : BSD-style
10+-- Maintainer : rtharper@aftereternity.co.uk, bos@serpentine.com,
11+-- duncan@haskell.org
12+-- Stability : experimental
13+-- Portability : GHC
14+--
15+-- Text manipulation functions represented as fusible operations over
16+-- streams.
3module Data.Text.Fusion
17module Data.Text.Fusion
4 (
18 (
19+ -- * Types
5 Stream(..)
20 Stream(..)
6 , Step(..)
21 , Step(..)
7 , Encoding(..)
22 , Encoding(..)
23+
24+ -- * Creation and elimination
8 , stream
25 , stream
9 , unstream
26 , unstream
10 , stream_bs
27 , stream_bs
11 , unstream_bs
28 , unstream_bs
12 , restream
29 , restream
13− , eq
30+
31+ -- * Basic interface
14 , cons
32 , cons
15 , snoc
33 , snoc
16 , append
34 , append
@@ -20,32 +38,50 @@ module Data.Text.Fusion
20 , init
38 , init
21 , null
39 , null
22 , length
40 , length
41+ , eq
42+
43+ -- * Transformations
23 , map
44 , map
45+ , intersperse
46+
47+ -- * Folds
24 , foldl
48 , foldl
25 , foldl'
49 , foldl'
26 , foldl1
50 , foldl1
27 , foldl1'
51 , foldl1'
28 , foldr
52 , foldr
29 , foldr1
53 , foldr1
54+
55+ -- ** Special folds
30 , concat
56 , concat
31 , concatMap
57 , concatMap
32 , any
58 , any
33 , all
59 , all
34 , maximum
60 , maximum
35 , minimum
61 , minimum
62+
63+ -- * Construction
36 , unfoldr
64 , unfoldr
37 , unfoldrN
65 , unfoldrN
66+
67+ -- * Substrings
68+ -- ** Breaking strings
38 , take
69 , take
39 , drop
70 , drop
40 , takeWhile
71 , takeWhile
41 , dropWhile
72 , dropWhile
73+
74+ -- * Searching
42 , elem
75 , elem
43− , find
44 , filter
76 , filter
45− , intersperse
77+
78+ -- * Indexing
79+ , find
46 , index
80 , index
47 , findIndex
81 , findIndex
48 , elemIndex
82 , elemIndex
83+
84+ -- * Zipping and unzipping
49 , zipWith
85 , zipWith
50 ) where
86 ) where
51
87
@@ -54,21 +90,21 @@ import Prelude hiding
54 foldl1, foldr1, concatMap, any, all, maximum, minimum, take, drop,
90 foldl1, foldr1, concatMap, any, all, maximum, minimum, take, drop,
55 takeWhile, dropWhile, elem, zipWith)
91 takeWhile, dropWhile, elem, zipWith)
56import Data.Char (ord)
92import Data.Char (ord)
57−import Control.Exception(assert)
93+import Control.Exception (assert)
58−import Control.Monad(liftM2)
94+import Control.Monad (liftM2)
59−import Control.Monad.ST(runST,ST)
95+import Control.Monad.ST (runST, ST)
60import Data.Bits (shiftL, shiftR, (.&.))
96import Data.Bits (shiftL, shiftR, (.&.))
61import qualified Data.ByteString as B
97import qualified Data.ByteString as B
62import qualified Data.ByteString.Unsafe as B
98import qualified Data.ByteString.Unsafe as B
63−import Data.ByteString.Internal(ByteString(..),mallocByteString,memcpy)
99+import Data.ByteString.Internal (ByteString(..), mallocByteString, memcpy)
64import qualified Data.List as L
100import qualified Data.List as L
65−import Data.Word(Word8, Word16, Word32)
101+import Data.Word (Word8, Word16, Word32)
66−import Foreign.ForeignPtr(withForeignPtr,ForeignPtr)
102+import Foreign.ForeignPtr (withForeignPtr, ForeignPtr)
67−import Foreign.Storable(pokeByteOff)
103+import Foreign.Storable (pokeByteOff)
68import GHC.Exts (Int(..), (+#))
104import GHC.Exts (Int(..), (+#))
69−import System.IO.Unsafe(unsafePerformIO)
105+import System.IO.Unsafe (unsafePerformIO)
70−import Data.Text.Internal(Text(..),empty)
106+import Data.Text.Internal (Text(..), empty)
71−import Data.Text.UnsafeChar(unsafeChr,unsafeChr8,unsafeChr32)
107+import Data.Text.UnsafeChar (unsafeChr, unsafeChr8, unsafeChr32)
72import qualified Data.Text.Array as A
108import qualified Data.Text.Array as A
73import qualified Data.Text.Utf8 as U8
109import qualified Data.Text.Utf8 as U8
74import qualified Data.Text.Utf16 as U16
110import qualified Data.Text.Utf16 as U16
Data/Text/UnsafeChar.hs+15−2
@@ -1,5 +1,18 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
2
2
3+-- |
4+-- Module : Data.Text.UnsafeChar
5+-- Copyright : (c) Tom Harper 2008-2009,
6+-- (c) Bryan O'Sullivan 2009,
7+-- (c) Duncan Coutts 2009
8+--
9+-- License : BSD-style
10+-- Maintainer : rtharper@aftereternity.co.uk, bos@serpentine.com,
11+-- duncan@haskell.org
12+-- Stability : experimental
13+-- Portability : GHC
14+--
15+-- Fast character manipulation function.
3module Data.Text.UnsafeChar
16module Data.Text.UnsafeChar
4 (
17 (
5 unsafeChr
18 unsafeChr
@@ -7,8 +20,8 @@ module Data.Text.UnsafeChar
7 , unsafeChr32
20 , unsafeChr32
8 ) where
21 ) where
9
22
10−import GHC.Exts
23+import GHC.Exts (Char(..), chr#, word2Int#)
11−import GHC.Word
24+import GHC.Word (Word8(..), Word16(..), Word32(..))
12
25
13unsafeChr :: Word16 -> Char
26unsafeChr :: Word16 -> Char
14unsafeChr (W16# w#) = C# (chr# (word2Int# w#))
27unsafeChr (W16# w#) = C# (chr# (word2Int# w#))
Data/Text/Utf16.hs+14−1
@@ -1,8 +1,21 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
2
2
3+-- |
4+-- Module : Data.Text.Utf16
5+-- Copyright : (c) Tom Harper 2008-2009,
6+-- (c) Bryan O'Sullivan 2009,
7+-- (c) Duncan Coutts 2009
8+--
9+-- License : BSD-style
10+-- Maintainer : rtharper@aftereternity.co.uk, bos@serpentine.com,
11+-- duncan@haskell.org
12+-- Stability : experimental
13+-- Portability : GHC
14+--
15+-- Basic UTF-16 validation and character manipulation.
3module Data.Text.Utf16
16module Data.Text.Utf16
4 (
17 (
5− chr2
18+ chr2
6 , validate1
19 , validate1
7 , validate2
20 , validate2
8 ) where
21 ) where
Data/Text/Utf32.hs+13
@@ -1,3 +1,16 @@
1+-- |
2+-- Module : Data.Text.Utf16
3+-- Copyright : (c) Tom Harper 2008-2009,
4+-- (c) Bryan O'Sullivan 2009,
5+-- (c) Duncan Coutts 2009
6+--
7+-- License : BSD-style
8+-- Maintainer : rtharper@aftereternity.co.uk, bos@serpentine.com,
9+-- duncan@haskell.org
10+-- Stability : experimental
11+-- Portability : portable
12+--
13+-- Basic UTF-32 validation.
1module Data.Text.Utf32
14module Data.Text.Utf32
2 (
15 (
3 validate
16 validate
Data/Text/Utf8.hs+21−1
@@ -1,12 +1,29 @@
1{-# LANGUAGE MagicHash #-}
1{-# LANGUAGE MagicHash #-}
2+
3+-- |
4+-- Module : Data.Text.Utf16
5+-- Copyright : (c) Tom Harper 2008-2009,
6+-- (c) Bryan O'Sullivan 2009,
7+-- (c) Duncan Coutts 2009
8+--
9+-- License : BSD-style
10+-- Maintainer : rtharper@aftereternity.co.uk, bos@serpentine.com,
11+-- duncan@haskell.org
12+-- Stability : experimental
13+-- Portability : GHC
14+--
15+-- Basic UTF-8 validation and character manipulation.
2module Data.Text.Utf8
16module Data.Text.Utf8
3 (
17 (
18+ -- Decomposition
4 ord2
19 ord2
5 , ord3
20 , ord3
6 , ord4
21 , ord4
22+ -- Construction
7 , chr2
23 , chr2
8 , chr3
24 , chr3
9 , chr4
25 , chr4
26+ -- * Validation
10 , validate1
27 , validate1
11 , validate2
28 , validate2
12 , validate3
29 , validate3
@@ -18,7 +35,10 @@ import Data.Bits (shiftR, (.&.))
18import GHC.Exts
35import GHC.Exts
19import GHC.Word (Word8(..))
36import GHC.Word (Word8(..))
20
37
21−between :: Word8 -> Word8 -> Word8 -> Bool
38+between :: Word8 -- ^ byte to check
39+ -> Word8 -- ^ lower bound
40+ -> Word8 -- ^ upper bound
41+ -> Bool
22between x y z = x >= y && x <= z
42between x y z = x >= y && x <= z
23{-# INLINE between #-}
43{-# INLINE between #-}
24
44