Copyright | (c) 2009, 2010 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell98 |
Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk!
A module containing private Text
internals. This exposes the
Text
representation and low level construction functions.
Modules which extend the Text
system may need to use this module.
- data Text
- chunk :: Text -> Text -> Text
- empty :: Text
- foldrChunks :: (Text -> a -> a) -> a -> Text -> a
- foldlChunks :: (a -> Text -> a) -> a -> Text -> a
- strictInvariant :: Text -> Bool
- lazyInvariant :: Text -> Text
- showStructure :: Text -> String
- defaultChunkSize :: Int
- smallChunkSize :: Int
- chunkOverhead :: Int
Documentation
data Text
IsList Text | |
Eq Text | |
Data Text | This instance preserves data abstraction at the cost of inefficiency. We omit reflection services for the sake of data abstraction. This instance was created by copying the updated behavior of
|
Ord Text | |
Read Text | |
Show Text | |
IsString Text | |
Monoid Text | |
NFData Text | |
Typeable * Text | |
type Item Text = Char |
foldrChunks :: (Text -> a -> a) -> a -> Text -> a
Consume the chunks of a lazy Text
with a natural right fold.
foldlChunks :: (a -> Text -> a) -> a -> Text -> a
Consume the chunks of a lazy Text
with a strict, tail-recursive,
accumulating left fold.
Data type invariant and abstraction functions
The data type invariant for lazy Text
: Every Text
is either Empty
or
consists of non-null Text
s. All functions must preserve this,
and the QC properties must check this.
strictInvariant :: Text -> Bool
Check the invariant strictly.
lazyInvariant :: Text -> Text
Check the invariant lazily.
showStructure :: Text -> String
Display the internal structure of a lazy Text
.
Chunk allocation sizes
Currently set to 16 KiB, less the memory management overhead.
Currently set to 128 bytes, less the memory management overhead.
chunkOverhead :: Int
The memory management overhead. Currently this is tuned for GHC only.