-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Pretty printing class similar to Show.
--   
--   Pretty printing class similar to Show, based on the HughesPJ pretty
--   printing library. Provides the pretty printing class and instances for
--   the Prelude types.
@package prettyclass
@version 1.0.0.0


-- | Pretty printing class, simlar to <a>Show</a> but nicer looking. Note
--   that the precedence level is a <a>Rational</a> so there is an
--   unlimited number of levels. Based on <a>Text.PrettyPrint.HughesPJ</a>,
--   which is re-exported.
module Text.PrettyPrint.HughesPJClass

-- | Pretty printing class. The precedence level is used in a similar way
--   as in the <a>Show</a> class. Minimal complete definition is either
--   <a>pPrintPrec</a> or <a>pPrint</a>.
class Pretty a
pPrintPrec :: Pretty a => PrettyLevel -> Rational -> a -> Doc
pPrint :: Pretty a => a -> Doc
pPrintList :: Pretty a => PrettyLevel -> [a] -> Doc

-- | Level of detail in the pretty printed output. Level 0 is the least
--   detail.
newtype PrettyLevel
PrettyLevel :: Int -> PrettyLevel
prettyNormal :: PrettyLevel

-- | Pretty print a value with the <a>prettyNormal</a> level.
prettyShow :: Pretty a => a -> String

-- | Parenthesize an value if the boolean is true.
prettyParen :: Bool -> Doc -> Doc
text :: String -> Doc
data Doc
brackets :: Doc -> Doc
fsep :: [Doc] -> Doc
punctuate :: Doc -> [Doc] -> [Doc]
comma :: Doc
render :: Doc -> String
parens :: Doc -> Doc
int :: Int -> Doc
integer :: Integer -> Doc
float :: Float -> Doc
double :: Double -> Doc
char :: Char -> Doc
(<+>) :: Doc -> Doc -> Doc
(<>) :: Doc -> Doc -> Doc
($$) :: Doc -> Doc -> Doc
($+$) :: Doc -> Doc -> Doc
data TextDetails
Chr :: {-# UNPACK #-} !Char -> TextDetails
Str :: String -> TextDetails
PStr :: String -> TextDetails
data Mode
PageMode :: Mode
ZigZagMode :: Mode
LeftMode :: Mode
OneLineMode :: Mode
data Style
Style :: Mode -> Int -> Float -> Style
[mode] :: Style -> Mode
[lineLength] :: Style -> Int
[ribbonsPerLine] :: Style -> Float
cat :: [Doc] -> Doc
empty :: Doc
fcat :: [Doc] -> Doc
first :: Doc -> Doc -> Doc
fullRender :: Mode -> Int -> Float -> (TextDetails -> a -> a) -> a -> Doc -> a
hang :: Doc -> Int -> Doc -> Doc
hcat :: [Doc] -> Doc
hsep :: [Doc] -> Doc
isEmpty :: Doc -> Bool
nest :: Int -> Doc -> Doc
ptext :: String -> Doc
reduceDoc :: Doc -> RDoc
sep :: [Doc] -> Doc
sizedText :: Int -> String -> Doc
style :: Style
vcat :: [Doc] -> Doc
braces :: Doc -> Doc
colon :: Doc
doubleQuotes :: Doc -> Doc
equals :: Doc
lbrace :: Doc
lbrack :: Doc
lparen :: Doc
maybeBraces :: Bool -> Doc -> Doc
maybeBrackets :: Bool -> Doc -> Doc
maybeDoubleQuotes :: Bool -> Doc -> Doc
maybeParens :: Bool -> Doc -> Doc
maybeQuotes :: Bool -> Doc -> Doc
quotes :: Doc -> Doc
rational :: Rational -> Doc
rbrace :: Doc
rbrack :: Doc
renderStyle :: Style -> Doc -> String
rparen :: Doc
semi :: Doc
space :: Doc
zeroWidthText :: String -> Doc
instance GHC.Classes.Eq Text.PrettyPrint.HughesPJClass.PrettyLevel
instance GHC.Classes.Ord Text.PrettyPrint.HughesPJClass.PrettyLevel
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Bool
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Char
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Double
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b) => Text.PrettyPrint.HughesPJClass.Pretty (GHC.Internal.Data.Either.Either a b)
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Float
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Int
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Num.Integer.Integer
instance Text.PrettyPrint.HughesPJClass.Pretty a => Text.PrettyPrint.HughesPJClass.Pretty [a]
instance Text.PrettyPrint.HughesPJClass.Pretty a => Text.PrettyPrint.HughesPJClass.Pretty (GHC.Internal.Maybe.Maybe a)
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Ordering
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b) => Text.PrettyPrint.HughesPJClass.Pretty (a, b)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c, Text.PrettyPrint.HughesPJClass.Pretty d) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c, d)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c, Text.PrettyPrint.HughesPJClass.Pretty d, Text.PrettyPrint.HughesPJClass.Pretty e) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c, d, e)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c, Text.PrettyPrint.HughesPJClass.Pretty d, Text.PrettyPrint.HughesPJClass.Pretty e, Text.PrettyPrint.HughesPJClass.Pretty f) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c, d, e, f)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c, Text.PrettyPrint.HughesPJClass.Pretty d, Text.PrettyPrint.HughesPJClass.Pretty e, Text.PrettyPrint.HughesPJClass.Pretty f, Text.PrettyPrint.HughesPJClass.Pretty g) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c, d, e, f, g)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b, Text.PrettyPrint.HughesPJClass.Pretty c, Text.PrettyPrint.HughesPJClass.Pretty d, Text.PrettyPrint.HughesPJClass.Pretty e, Text.PrettyPrint.HughesPJClass.Pretty f, Text.PrettyPrint.HughesPJClass.Pretty g, Text.PrettyPrint.HughesPJClass.Pretty h) => Text.PrettyPrint.HughesPJClass.Pretty (a, b, c, d, e, f, g, h)
instance Text.PrettyPrint.HughesPJClass.Pretty ()
instance GHC.Internal.Show.Show Text.PrettyPrint.HughesPJClass.PrettyLevel
