Portability | GHC |
---|---|
Stability | experimental |
Maintainer | bos@serpentine.com, rtomharper@googlemail.com, duncan@haskell.org |
Safe Haskell | None |
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.
You should not use this module unless you are determined to monkey with the internals, as the functions here do just about nothing to preserve data invariants. You have been warned!
- 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
foldrChunks :: (Text -> a -> a) -> a -> Text -> aSource
Consume the chunks of a lazy Text
with a natural right fold.
foldlChunks :: (a -> Text -> a) -> a -> Text -> aSource
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 -> BoolSource
Check the invariant strictly.
lazyInvariant :: Text -> TextSource
Check the invariant lazily.
showStructure :: Text -> StringSource
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.
The memory management overhead. Currently this is tuned for GHC only.