ddc-core-0.4.3.1: Disciplined Disciple Compiler core language and type checker.

Safe HaskellSafe
LanguageHaskell98

DDC.Data.Pretty

Contents

Description

Pretty printer utilities.

This is a re-export of Daan Leijen's pretty printer package (wl-pprint), but with a Pretty class that includes a pprPrec function.

Synopsis

Documentation

class Pretty a where Source #

Minimal complete definition

pprDefaultMode

Associated Types

data PrettyMode a Source #

Methods

pprDefaultMode :: PrettyMode a Source #

ppr :: a -> Doc Source #

pprPrec :: Int -> a -> Doc Source #

pprModePrec :: PrettyMode a -> Int -> a -> Doc Source #

Instances

Pretty Bool Source # 

Associated Types

data PrettyMode Bool :: * Source #

Pretty Char Source # 

Associated Types

data PrettyMode Char :: * Source #

Pretty Int Source # 

Associated Types

data PrettyMode Int :: * Source #

Pretty Integer Source # 
Pretty () Source # 

Associated Types

data PrettyMode () :: * Source #

Methods

pprDefaultMode :: PrettyMode () Source #

ppr :: () -> Doc Source #

pprPrec :: Int -> () -> Doc Source #

pprModePrec :: PrettyMode () -> Int -> () -> Doc Source #

Pretty SourcePos Source # 
Pretty Universe Source # 
Pretty CheckTrace Source # 
Pretty Demand Source # 
Pretty a => Pretty [a] Source # 

Associated Types

data PrettyMode [a] :: * Source #

Methods

pprDefaultMode :: PrettyMode [a] Source #

ppr :: [a] -> Doc Source #

pprPrec :: Int -> [a] -> Doc Source #

pprModePrec :: PrettyMode [a] -> Int -> [a] -> Doc Source #

Pretty a => Pretty (Set a) Source # 

Associated Types

data PrettyMode (Set a) :: * Source #

Methods

pprDefaultMode :: PrettyMode (Set a) Source #

ppr :: Set a -> Doc Source #

pprPrec :: Int -> Set a -> Doc Source #

pprModePrec :: PrettyMode (Set a) -> Int -> Set a -> Doc Source #

(Eq n, Pretty n) => Pretty (Mode n) Source # 

Associated Types

data PrettyMode (Mode n) :: * Source #

Methods

pprDefaultMode :: PrettyMode (Mode n) Source #

ppr :: Mode n -> Doc Source #

pprPrec :: Int -> Mode n -> Doc Source #

pprModePrec :: PrettyMode (Mode n) -> Int -> Mode n -> Doc Source #

(Pretty a, Pretty b) => Pretty (a, b) Source # 

Associated Types

data PrettyMode (a, b) :: * Source #

Methods

pprDefaultMode :: PrettyMode (a, b) Source #

ppr :: (a, b) -> Doc Source #

pprPrec :: Int -> (a, b) -> Doc Source #

pprModePrec :: PrettyMode (a, b) -> Int -> (a, b) -> Doc Source #

Pretty (AnT a n) Source # 

Associated Types

data PrettyMode (AnT a n) :: * Source #

Methods

pprDefaultMode :: PrettyMode (AnT a n) Source #

ppr :: AnT a n -> Doc Source #

pprPrec :: Int -> AnT a n -> Doc Source #

pprModePrec :: PrettyMode (AnT a n) -> Int -> AnT a n -> Doc Source #

Pretty (AnTEC a n) Source # 

Associated Types

data PrettyMode (AnTEC a n) :: * Source #

Methods

pprDefaultMode :: PrettyMode (AnTEC a n) Source #

ppr :: AnTEC a n -> Doc Source #

pprPrec :: Int -> AnTEC a n -> Doc Source #

pprModePrec :: PrettyMode (AnTEC a n) -> Int -> AnTEC a n -> Doc Source #

(Pretty n, Eq n) => Pretty (Error a n) Source # 

Associated Types

data PrettyMode (Error a n) :: * Source #

Methods

pprDefaultMode :: PrettyMode (Error a n) Source #

ppr :: Error a n -> Doc Source #

pprPrec :: Int -> Error a n -> Doc Source #

pprModePrec :: PrettyMode (Error a n) -> Int -> Error a n -> Doc Source #

(Eq n, Show n, Pretty n, Pretty (err (AnTEC SourcePos n))) => Pretty (Error n err) Source # 

Associated Types

data PrettyMode (Error n err) :: * Source #

Methods

pprDefaultMode :: PrettyMode (Error n err) Source #

ppr :: Error n err -> Doc Source #

pprPrec :: Int -> Error n err -> Doc Source #

pprModePrec :: PrettyMode (Error n err) -> Int -> Error n err -> Doc Source #

pprParen :: Bool -> Doc -> Doc Source #

Wrap a Doc in parens if the predicate is true.

padL :: Int -> Doc -> Doc Source #

Rendering

data RenderMode Source #

How to pretty print a doc.

Constructors

RenderPlain

Render the doc with indenting.

RenderIndent

Render the doc without indenting.

render :: RenderMode -> Doc -> String Source #

Render a doc with the given mode.

renderPlain :: Doc -> String Source #

Convert a Doc to a string without indentation.

renderIndent :: Doc -> String Source #

Convert a Doc to a string with indentation

putDoc :: RenderMode -> Doc -> IO () Source #

Put a Doc to stdout using the given mode.

putDocLn :: RenderMode -> Doc -> IO () Source #

Put a Doc to stdout using the given mode.