| Copyright | (c) 2009 2010 Bryan O'Sullivan | 
|---|---|
| License | BSD-style | 
| Maintainer | bos@serpentine.com | 
| Stability | experimental | 
| Portability | GHC | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Data.Text.Internal.Lazy
Description
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.
Synopsis
- data Text
 - type LazyText = 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
 - equal :: Text -> Text -> Bool
 
Documentation
Constructors
| Empty | Empty text. Since: text-2.1.2  | 
| Chunk !Text Text | Chunks must be non-empty, this invariant is not checked.  | 
Instances
| PrintfArg Text Source # | Since: text-1.2.2.0  | 
Defined in Data.Text.Lazy  | |
| Binary Text Source # | Since: text-1.2.1.0  | 
| NFData Text Source # | |
Defined in Data.Text.Lazy  | |
| Monoid Text Source # | |
| Semigroup Text Source # | Since: text-1.2.2.0  | 
| Data Text Source # | 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
   | 
Defined in Data.Text.Lazy Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Text -> c Text # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Text # dataTypeOf :: Text -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Text) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Text) # gmapT :: (forall b. Data b => b -> b) -> Text -> Text # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Text -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Text -> r # gmapQ :: (forall d. Data d => d -> u) -> Text -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Text -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Text -> m Text # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Text -> m Text # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Text -> m Text #  | |
| IsString Text Source # | Performs replacement on invalid scalar values: 
  | 
Defined in Data.Text.Lazy Methods fromString :: String -> Text #  | |
| IsList Text Source # | Performs replacement on invalid scalar values: 
 Since: text-1.2.0.0  | 
| Read Text Source # | |
| Show Text Source # | |
| Eq Text Source # | |
| Ord Text Source # | |
| Lift Text Source # | Since: text-1.2.4.0  | 
| type Item Text Source # | |
Defined in Data.Text.Lazy  | |
chunk :: Text -> Text -> Text Source #
Smart constructor for Chunk. Guarantees the data type invariant.
foldrChunks :: (Text -> a -> a) -> a -> Text -> a Source #
Consume the chunks of a lazy Text with a natural right fold.
foldlChunks :: (a -> Text -> a) -> a -> Text -> a Source #
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 Texts.  All functions must preserve this,
 and the QC properties must check this.
strictInvariant :: Text -> Bool Source #
Check the invariant strictly.
lazyInvariant :: Text -> Text Source #
Check the invariant lazily.
Chunk allocation sizes
defaultChunkSize :: Int Source #
Currently set to 16 KiB, less the memory management overhead.
smallChunkSize :: Int Source #
Currently set to 128 bytes, less the memory management overhead.
chunkOverhead :: Int Source #
The memory management overhead. Currently this is tuned for GHC only.