-- 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 Show but nicer looking. Note
--   that the precedence level is a Rational so there is an
--   unlimited number of levels. Based on Text.PrettyPrint.HughesPJ,
--   which is re-exported.
module Text.PrettyPrint.HughesPJClass

-- | Pretty printing class. The precedence level is used in a similar way
--   as in the Show class. Minimal complete definition is either
--   pPrintPrec or pPrint.
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 prettyNormal level.
prettyShow :: Pretty a => a -> String

-- | Parenthesize an value if the boolean is true.
prettyParen :: Bool -> Doc -> Doc
instance GHC.Show.Show Text.PrettyPrint.HughesPJClass.PrettyLevel
instance GHC.Classes.Ord Text.PrettyPrint.HughesPJClass.PrettyLevel
instance GHC.Classes.Eq Text.PrettyPrint.HughesPJClass.PrettyLevel
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Int
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Num.Integer.Integer
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Float
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Double
instance Text.PrettyPrint.HughesPJClass.Pretty ()
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Bool
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Ordering
instance Text.PrettyPrint.HughesPJClass.Pretty GHC.Types.Char
instance Text.PrettyPrint.HughesPJClass.Pretty a => Text.PrettyPrint.HughesPJClass.Pretty (GHC.Maybe.Maybe a)
instance (Text.PrettyPrint.HughesPJClass.Pretty a, Text.PrettyPrint.HughesPJClass.Pretty b) => Text.PrettyPrint.HughesPJClass.Pretty (Data.Either.Either a b)
instance Text.PrettyPrint.HughesPJClass.Pretty a => Text.PrettyPrint.HughesPJClass.Pretty [a]
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)
