Portability | portable (Haskell 98) |
---|---|
Stability | experimental |
Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |
Difference strings: a data structure for O(1) append on strings. Note that a DString is just a newtype wrapper around a 'DList Char'. The reason we need a new type instead of just a type synonym is that we can have an 'instance IsString DString' so we can write overloaded string literals of type DString.
- data DString
- fromDList :: DList Char -> DString
- toDList :: DString -> DList Char
- toString :: DString -> String
- fromShowS :: ShowS -> DString
- toShowS :: DString -> ShowS
- empty :: DString
- singleton :: Char -> DString
- cons :: Char -> DString -> DString
- snoc :: DString -> Char -> DString
- append :: DString -> DString -> DString
- concat :: [DString] -> DString
- list :: b -> (Char -> DString -> b) -> DString -> b
- head :: DString -> Char
- tail :: DString -> DString
- unfoldr :: (b -> Maybe (Char, b)) -> b -> DString
- foldr :: (Char -> b -> b) -> b -> DString -> b