Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Synopsis
- newtype Chunk a = Chunk { }
- chunked :: (a -> a -> a) -> Chunk a -> Chunk a -> Chunk a
- listToChunk :: Semigroup a => [a] -> Chunk a
- (<<+>>) :: Chunk Doc -> Chunk Doc -> Chunk Doc
- (<</>>) :: Chunk Doc -> Chunk Doc -> Chunk Doc
- vcatChunks :: [ Chunk Doc ] -> Chunk Doc
- vsepChunks :: [ Chunk Doc ] -> Chunk Doc
- isEmpty :: Chunk a -> Bool
- stringChunk :: String -> Chunk Doc
- paragraph :: String -> Chunk Doc
- extractChunk :: Monoid a => Chunk a -> a
- tabulate :: Int -> [( Doc , Doc )] -> Chunk Doc
Documentation
The free monoid on a semigroup
a
.
chunked :: (a -> a -> a) -> Chunk a -> Chunk a -> Chunk a Source #
Given a semigroup structure on
a
, return a monoid structure on 'Chunk a'.
Note that this is
not
the same as
liftA2
.
listToChunk :: Semigroup a => [a] -> Chunk a Source #
Concatenate a list into a Chunk.
listToChunk
satisfies:
isEmpty . listToChunk = null listToChunk = mconcat . fmap pure
vsepChunks :: [ Chunk Doc ] -> Chunk Doc Source #
Concatenate
Chunk
s vertically separated by empty lines.
paragraph :: String -> Chunk Doc Source #
Convert a paragraph into a
Chunk
. The resulting chunk is composed by the
words of the original paragraph separated by softlines, so it will be
automatically word-wrapped when rendering the underlying document.
This satisfies:
isEmpty . paragraph = null . words