liquid-fixpoint-0.9.4.7: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
Safe HaskellSafe-Inferred
LanguageHaskell98

Text.PrettyPrint.HughesPJ.Compat

Synopsis

Documentation

data Doc #

The abstract type of documents. A Doc represents a set of layouts. A Doc with no occurrences of Union or NoDoc represents just one layout.

Instances

Instances details
IsString Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

fromString :: String -> Doc #

Monoid Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

mempty :: Doc #

mappend :: Doc -> Doc -> Doc #

mconcat :: [Doc] -> Doc #

Semigroup Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

(<>) :: Doc -> Doc -> Doc #

sconcat :: NonEmpty Doc -> Doc #

stimes :: Integral b => b -> Doc -> Doc #

Generic Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Associated Types

type Rep Doc :: Type -> Type #

Methods

from :: Doc -> Rep Doc x #

to :: Rep Doc x -> Doc #

Show Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

showsPrec :: Int -> Doc -> ShowS #

show :: Doc -> String #

showList :: [Doc] -> ShowS #

Serialize Doc Source # 
Instance details

Defined in Language.Fixpoint.Types.Errors

Methods

put :: Putter Doc #

get :: Get Doc #

NFData Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

rnf :: Doc -> () #

Eq Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

(==) :: Doc -> Doc -> Bool #

(/=) :: Doc -> Doc -> Bool #

Fixpoint Doc Source # 
Instance details

Defined in Language.Fixpoint.Types.Refinements

Methods

toFix :: Doc -> Doc Source #

simplify :: Doc -> Doc Source #

PPrint Doc Source # 
Instance details

Defined in Language.Fixpoint.Types.PrettyPrint

Methods

pprintTidy :: Tidy -> Doc -> Doc Source #

pprintPrec :: Int -> Tidy -> Doc -> Doc Source #

type Rep Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

type Rep Doc = D1 ('MetaData "Doc" "Text.PrettyPrint.HughesPJ" "pretty-1.1.3.6" 'True) (C1 ('MetaCons "Doc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ()))))

zeroWidthText :: String -> Doc #

Some text, but without any width. Use for non-printing text such as a HTML or Latex tags

vcat :: [Doc] -> Doc #

List version of $$.

text :: String -> Doc #

A document of height 1 containing a literal string. text satisfies the following laws:

The side condition on the last law is necessary because text "" has height 1, while empty has no height.

space #

Arguments

:: Doc

A space character

sizedText :: Int -> String -> Doc #

Some text with any width. (text s = sizedText (length s) s)

sep :: [Doc] -> Doc #

Either hsep or vcat.

semi #

Arguments

:: Doc

A ';' character

rparen #

Arguments

:: Doc

A ')' character

renderStyle :: Style -> Doc -> String #

Render the Doc to a String using the given Style.

render :: Doc -> String #

Render the Doc to a String using the default Style (see style).

reduceDoc :: Doc -> RDoc #

Perform some simplification of a built up GDoc.

rbrack #

Arguments

:: Doc

A ']' character

rbrace #

Arguments

:: Doc

A '}' character

rational #

Arguments

:: Rational 
-> Doc
rational n = text (show n)

quotes #

Arguments

:: Doc 
-> Doc

Wrap document in '...'

punctuate :: Doc -> [Doc] -> [Doc] #

punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]

ptext :: String -> Doc #

Same as text. Used to be used for Bytestrings.

parens #

Arguments

:: Doc 
-> Doc

Wrap document in (...)

nest :: Int -> Doc -> Doc #

Nest (or indent) a document by a given number of positions (which may also be negative). nest satisfies the laws:

The side condition on the last law is needed because empty is a left identity for <>.

maybeQuotes :: Bool -> Doc -> Doc #

Apply quotes to Doc if boolean is true.

maybeParens :: Bool -> Doc -> Doc #

Apply parens to Doc if boolean is true.

maybeDoubleQuotes :: Bool -> Doc -> Doc #

Apply doubleQuotes to Doc if boolean is true.

maybeBrackets :: Bool -> Doc -> Doc #

Apply brackets to Doc if boolean is true.

maybeBraces :: Bool -> Doc -> Doc #

Apply braces to Doc if boolean is true.

lparen #

Arguments

:: Doc

A '(' character

lbrack #

Arguments

:: Doc

A '[' character

lbrace #

Arguments

:: Doc

A '{' character

isEmpty :: Doc -> Bool #

Returns True if the document is empty

integer #

Arguments

:: Integer 
-> Doc
integer n = text (show n)

int #

Arguments

:: Int 
-> Doc
int n = text (show n)

hsep :: [Doc] -> Doc #

List version of <+>.

hcat :: [Doc] -> Doc #

List version of <>.

hang :: Doc -> Int -> Doc -> Doc #

hang d1 n d2 = sep [d1, nest n d2]

fullRender #

Arguments

:: Mode

Rendering mode.

-> Int

Line length.

-> Float

Ribbons per line.

-> (TextDetails -> a -> a)

What to do with text.

-> a

What to do at the end.

-> Doc

The document.

-> a

Result.

The general rendering interface. Please refer to the Style and Mode types for a description of rendering mode, line length and ribbons.

fsep :: [Doc] -> Doc #

"Paragraph fill" version of sep.

float #

Arguments

:: Float 
-> Doc
float n = text (show n)

fcat :: [Doc] -> Doc #

"Paragraph fill" version of cat.

equals #

Arguments

:: Doc

A '=' character

empty :: Doc #

The empty document, with no height and no width. empty is the identity for <>, <+>, $$ and $+$, and anywhere in the argument list for sep, hcat, hsep, vcat, fcat etc.

doubleQuotes #

Arguments

:: Doc 
-> Doc

Wrap document in "..."

double #

Arguments

:: Double 
-> Doc
double n = text (show n)

comma #

Arguments

:: Doc

A ',' character

colon #

Arguments

:: Doc

A : character

char :: Char -> Doc #

A document of height and width 1, containing a literal character.

cat :: [Doc] -> Doc #

Either hcat or vcat.

brackets #

Arguments

:: Doc 
-> Doc

Wrap document in [...]

braces #

Arguments

:: Doc 
-> Doc

Wrap document in {...}

(<+>) :: Doc -> Doc -> Doc infixl 6 #

Beside, separated by space, unless one of the arguments is empty. <+> is associative, with identity empty.

($+$) :: Doc -> Doc -> Doc infixl 5 #

Above, with no overlapping. $+$ is associative, with identity empty.

($$) :: Doc -> Doc -> Doc infixl 5 #

Above, except that if the last line of the first argument stops at least one position before the first line of the second begins, these two lines are overlapped. For example:

   text "hi" $$ nest 5 (text "there")

lays out as

   hi   there

rather than

   hi
        there

$$ is associative, with identity empty, and also satisfies

  • (x $$ y) <> z = x $$ (y <> z), if y non-empty.

data TextDetails #

A TextDetails represents a fragment of text that will be output at some point in a Doc.

Constructors

Chr !Char

A single Char fragment

Str String

A whole String fragment

PStr String

Used to represent a Fast String fragment but now deprecated and identical to the Str constructor.

Instances

Instances details
Generic TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep TextDetails :: Type -> Type #

Show TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Serialize TextDetails Source # 
Instance details

Defined in Language.Fixpoint.Types.Errors

NFData TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

rnf :: TextDetails -> () #

Eq TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

type Rep TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

data Style #

A rendering style. Allows us to specify constraints to choose among the many different rendering options.

Constructors

Style 

Fields

  • mode :: Mode

    The rendering mode.

  • lineLength :: Int

    Maximum length of a line, in characters.

  • ribbonsPerLine :: Float

    Ratio of line length to ribbon length. A ribbon refers to the characters on a line excluding indentation. So a lineLength of 100, with a ribbonsPerLine of 2.0 would only allow up to 50 characters of ribbon to be displayed on a line, while allowing it to be indented up to 50 characters.

Instances

Instances details
Generic Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep Style :: Type -> Type #

Methods

from :: Style -> Rep Style x #

to :: Rep Style x -> Style #

Show Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

showsPrec :: Int -> Style -> ShowS #

show :: Style -> String #

showList :: [Style] -> ShowS #

Eq Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

(==) :: Style -> Style -> Bool #

(/=) :: Style -> Style -> Bool #

type Rep Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

type Rep Style = D1 ('MetaData "Style" "Text.PrettyPrint.Annotated.HughesPJ" "pretty-1.1.3.6" 'False) (C1 ('MetaCons "Style" 'PrefixI 'True) (S1 ('MetaSel ('Just "mode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mode) :*: (S1 ('MetaSel ('Just "lineLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "ribbonsPerLine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float))))

data Mode #

Rendering mode.

Constructors

PageMode

Normal rendering (lineLength and ribbonsPerLine respected').

ZigZagMode

With zig-zag cuts.

LeftMode

No indentation, infinitely long lines (lineLength ignored), but explicit new lines, i.e., text "one" $$ text "two", are respected.

OneLineMode

All on one line, lineLength ignored and explicit new lines ($$) are turned into spaces.

Instances

Instances details
Generic Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Associated Types

type Rep Mode :: Type -> Type #

Methods

from :: Mode -> Rep Mode x #

to :: Rep Mode x -> Mode #

Show Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

showsPrec :: Int -> Mode -> ShowS #

show :: Mode -> String #

showList :: [Mode] -> ShowS #

Eq Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

(==) :: Mode -> Mode -> Bool #

(/=) :: Mode -> Mode -> Bool #

type Rep Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

type Rep Mode = D1 ('MetaData "Mode" "Text.PrettyPrint.Annotated.HughesPJ" "pretty-1.1.3.6" 'False) ((C1 ('MetaCons "PageMode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ZigZagMode" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LeftMode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OneLineMode" 'PrefixI 'False) (U1 :: Type -> Type)))

style :: Style #

The default style (mode=PageMode, lineLength=100, ribbonsPerLine=1.5).

(<->) :: Doc -> Doc -> Doc infixl 6 Source #

Also known as <> in pretty, but that clashes with Semigroup's <>