optparse-applicative-fork-0.16.1.0: Utilities and combinators for parsing command line options
Safe Haskell Safe-Inferred
Language Haskell98

Options.Applicative.Help.Chunk

Synopsis

Documentation

newtype Chunk a Source #

The free monoid on a semigroup a .

Constructors

Chunk

Fields

Instances

Instances details
Monad Chunk Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Functor Chunk Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Applicative Chunk Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Alternative Chunk Source #
Instance details

Defined in Options.Applicative.Help.Chunk

MonadPlus Chunk Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Eq a => Eq ( Chunk a) Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Show a => Show ( Chunk a) Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Semigroup a => Semigroup ( Chunk a) Source #
Instance details

Defined in Options.Applicative.Help.Chunk

Semigroup a => Monoid ( Chunk a) Source #
Instance details

Defined in Options.Applicative.Help.Chunk

CanAnnotate ( Chunk Doc ) Source #
Instance details

Defined in Options.Applicative.Help.Chunk

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

(<<+>>) :: Chunk Doc -> Chunk Doc -> Chunk Doc Source #

Concatenate two Chunk s with a space in between. If one is empty, this just returns the other one.

Unlike <+> for Doc , this operation has a unit element, namely the empty Chunk .

(<</>>) :: Chunk Doc -> Chunk Doc -> Chunk Doc Source #

Concatenate two Chunk s with a softline in between. This is exactly like <<+>> , but uses a softline instead of a space.

vsepChunks :: [ Chunk Doc ] -> Chunk Doc Source #

Concatenate Chunk s vertically separated by empty lines.

isEmpty :: Chunk a -> Bool Source #

Whether a Chunk is empty. Note that something like 'pure mempty' is not considered an empty chunk, even though the underlying Doc is empty.

stringChunk :: String -> Chunk Doc Source #

Convert a String into a Chunk . This satisfies:

isEmpty . stringChunk = null
extractChunk . stringChunk = string

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

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

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

tabulate :: Int -> [( Doc , Doc )] -> Chunk Doc Source #

Display pairs of strings in a table.

chunkFlatAlt :: Chunk Doc -> Chunk Doc -> Chunk Doc Source #

By default, ( chunkFlatAlt x y) renders as x . However when group ed, y will be preferred, with x as the fallback for the case when y doesn't fit.

chunkIsEffectivelyEmpty :: Chunk Doc -> Bool Source #

Determine if the document chunk is empty when rendered