text-2.1.2: An efficient packed Unicode text type.
Copyright(c) 2009 2010 Bryan O'Sullivan
LicenseBSD-style
Maintainerbos@serpentine.com
Stabilityexperimental
PortabilityGHC
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Documentation

data Text Source #

Constructors

Empty

Empty text.

Since: 2.1.2

Chunk !Text Text

Chunks must be non-empty, this invariant is not checked.

Instances

Instances details
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 Data.Text.Text

Instance details

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 #

toConstr :: Text -> Constr #

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:

>>> :set -XOverloadedStrings
>>> "\55555" :: Data.Text.Lazy.Text
"\65533"
Instance details

Defined in Data.Text.Lazy

Methods

fromString :: String -> Text #

Monoid Text Source # 
Instance details

Defined in Data.Text.Lazy

Methods

mempty :: Text #

mappend :: Text -> Text -> Text #

mconcat :: [Text] -> Text #

Semigroup Text Source #

Since: 1.2.2.0

Instance details

Defined in Data.Text.Lazy

Methods

(<>) :: Text -> Text -> Text #

sconcat :: NonEmpty Text -> Text #

stimes :: Integral b => b -> Text -> Text #

IsList Text Source #

Performs replacement on invalid scalar values:

>>> :set -XOverloadedLists
>>> ['\55555'] :: Data.Text.Lazy.Text
"\65533"

Since: 1.2.0.0

Instance details

Defined in Data.Text.Lazy

Associated Types

type Item Text #

Methods

fromList :: [Item Text] -> Text #

fromListN :: Int -> [Item Text] -> Text #

toList :: Text -> [Item Text] #

Read Text Source # 
Instance details

Defined in Data.Text.Lazy

Show Text Source # 
Instance details

Defined in Data.Text.Lazy

Methods

showsPrec :: Int -> Text -> ShowS #

show :: Text -> String #

showList :: [Text] -> ShowS #

PrintfArg Text Source #

Since: 1.2.2.0

Instance details

Defined in Data.Text.Lazy

Binary Text Source #

Since: 1.2.1.0

Instance details

Defined in Data.Text.Lazy

Methods

put :: Text -> Put #

get :: Get Text #

putList :: [Text] -> Put #

NFData Text Source # 
Instance details

Defined in Data.Text.Lazy

Methods

rnf :: Text -> () #

Eq Text Source # 
Instance details

Defined in Data.Text.Lazy

Methods

(==) :: Text -> Text -> Bool #

(/=) :: Text -> Text -> Bool #

Ord Text Source # 
Instance details

Defined in Data.Text.Lazy

Methods

compare :: Text -> Text -> Ordering #

(<) :: Text -> Text -> Bool #

(<=) :: Text -> Text -> Bool #

(>) :: Text -> Text -> Bool #

(>=) :: Text -> Text -> Bool #

max :: Text -> Text -> Text #

min :: Text -> Text -> Text #

Lift Text Source #

Since: 1.2.4.0

Instance details

Defined in Data.Text.Lazy

Methods

lift :: Quote m => Text -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Text -> Code m Text #

type Item Text Source # 
Instance details

Defined in Data.Text.Lazy

type Item Text = Char

type LazyText = Text Source #

Type synonym for the lazy flavour of Text.

chunk :: Text -> Text -> Text Source #

Smart constructor for Chunk. Guarantees the data type invariant.

empty :: Text Source #

Smart constructor for Empty.

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.

showStructure :: Text -> String Source #

Display the internal structure of a lazy Text.

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.