Safe Haskell | Safe |
---|---|

Language | Haskell98 |

## Synopsis

- mappendWith :: Monoid a => a -> a -> a -> a
- newtype Chunk a = Chunk {}
- chunked :: (a -> a -> a) -> Chunk a -> Chunk a -> Chunk a
- listToChunk :: Monoid 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 :: [(Doc, Doc)] -> Chunk Doc

# Documentation

mappendWith :: Monoid a => a -> a -> a -> a #

The free monoid on a semigroup `a`

.

chunked :: (a -> a -> a) -> Chunk a -> Chunk a -> Chunk a #

Given a semigroup structure on `a`

, return a monoid structure on 'Chunk a'.

Note that this is *not* the same as `liftA2`

.

listToChunk :: Monoid a => [a] -> Chunk a #

Concatenate a list into a Chunk. `listToChunk`

satisfies:

isEmpty . listToChunk = null listToChunk = mconcat . fmap pure

stringChunk :: String -> Chunk Doc #

paragraph :: String -> Chunk Doc #

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

extractChunk :: Monoid a => Chunk a -> a #

Part of a constrained comonad instance.

This is the counit of the adjunction between `Chunk`

and the forgetful
functor from monoids to semigroups. It satisfies:

extractChunk . pure = id extractChunk . fmap pure = id