compact-string-fix-0.3.2: Same as compact-string except with a small fix so it builds on ghc-6.12

Portabilityuntested
Stabilityexperimental
Maintainertwanvl@gmail.com
Safe HaskellNone

Data.CompactString.Fusion

Description

Fusable loop functions, mirrors Data.ByteString.Fusion.

Synopsis

Documentation

loopAcc :: PairS acc arr -> acc

loopArr :: PairS acc arr -> arr

Projection functions that are fusion friendly (as in, we determine when they are inlined)

data NoAcc

Data type for accumulators which can be ignored. The rewrite rules rely on the fact that no bottoms of this type are ever constructed; hence, we can assume (_ :: NoAcc) seq x = x.

Constructors

NoAcc 

foldEFL :: (acc -> Char -> acc) -> AccEFL acc

mapAccumEFL :: (acc -> Char -> (acc, Char)) -> AccEFL acc

Element function implementing a map and fold

mapIndexEFL :: (Int -> Char -> Char) -> AccEFL Int

Element function implementing a map with index

loopUp :: Encoding a => AccEFL acc -> acc -> CompactString a -> PairS acc (CompactString a)

loopUpC :: Encoding a => AccEFL acc -> acc -> CompactString a -> PairS acc (CompactString a)

like loopUp, but the size of the buffer can only become smaller

loopDown :: Encoding a => AccEFL acc -> acc -> CompactString a -> PairS acc (CompactString a)

loopUpFold :: Encoding a => FoldEFL acc -> acc -> CompactString a -> acc

loopDownFold :: Encoding a => FoldEFL acc -> acc -> CompactString a -> acc