úÎZcUn     A rendering style The rendering mode Length of line, in chars &Ratio of ribbon length to line length ,Render a document using a particular Style.  The default  used for Text.PrettyPrint.GenericPretty 4 (mode=PageMode, lineLength=80, ribbonsPerLine=1.5) A !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQ" is the (*->*) kind equivalent of   RR+ marks nullary constructors, so that we don't put parens around them STUV The class  is the equivalent of W ?It provides conversion of values to pretty printable Pretty.Doc's. Minimal complete definition:   or  . Derived instances of  have the following properties  The result of  $ is a syntactically correct Haskell : expression containing only constants, given the fixity B declarations in force at the point where the type is declared. D It contains only the constructor names defined in the data type, B parentheses, and spaces. When labelled constructor fields are E used, braces, commas, field names, and equal signs are also used. = If the constructor is defined to be an infix operator, then   5 will produce infix applications of the constructor. ; the representation will be enclosed in parentheses if the . precedence of the top-level constructor in x is less than d ) (associativity is ignored). Thus, if d is 0 then the result * is never surrounded in parentheses; if d is 11 it is always A surrounded in parentheses, unless it is an atomic expression. 9 If the constructor is defined using record syntax, then   E will produce the record-syntax form, with the fields given in the + same order as the original declaration. $For example, given the declarations  E data Tree a = Leaf a | Node (Tree a) (Tree a) deriving (Generic) The derived instance of  is equivalent to: ( instance (Out a) => Out (Tree a) where  F docPrec d (Leaf m) = Pretty.sep $ wrapParens (d > appPrec) $ R text "Leaf" : [nest (constrLen + parenLen) (docPrec (appPrec+1) m)]  where appPrec = 10  constrLen = 5; : parenLen = if(d > appPrec) then 1 else 0  H docPrec d (Node u v) = Pretty.sep $ wrapParens (d > appPrec) $  text "Node" : E nest (constrLen + parenLen) (docPrec (appPrec+1) u) : D [nest (constrLen + parenLen) (docPrec (appPrec+1) v)]  where appPrec = 10  constrLen = 5 : parenLen = if(d > appPrec) then 1 else 0   is the equivalent of X. &Convert a value to a pretty printable  Pretty.Doc. )the operator precedence of the enclosing  context (a number from 0 to 11). % Function application has precedence 10. the value to be converted to a Y the resulting Doc   is the equivalent of Z !This is a specialised variant of  !, using precedence context zero.   is the equivalent of [.  The method  ( is provided to allow the programmer to 4 give a specialised way of showing lists of values. - For example, this is used by the predefined  instance of  the \ type, where values of type Y should be shown 8 in double quotes, rather than between square brackets. Default generic   method. IConverts the type into a sum of products and passes it on to the generic B pretty printing functions, finally it concatenates all of the Doc's 2It can be used in code to define the instance for . &For instance, given the declaration:  E data Tree a = Leaf a | Node (Tree a) (Tree a) deriving (Generic) ;The user would need to write an instance declaration like:  ( instance (Out a) => Out (Tree a) where  docPrec = docPrecDefault AAfter doing this, the user can now pretty printing function like  and   on data of type Tree ]^_NUtility function used to wrap the passed value in parens if the bool is true. `  ( is a fully customizable Pretty Printer =Every other pretty printer just gives some default values to   *Function that handles the text conversion (eg: 'outputIO') The end element of the result ( eg: "" or putChar('\n') ) The pretty printing  to use The value to pretty print The pretty printed result 6Utility function that handles the text conversion for  .  transforms the text into Ys and outputs it directly. 6Utility function that handles the text conversion for  .  just leaves the text as a Y which is usefull if you want / to further process the pretty printed result. Customizable pretty printer Takes a user defined  as a parameter and uses  to obtain the result  Equivalent to:  fullPP outputStr "" #Semi-customizable pretty printer. Equivalent to:   prettyStyle customStyle [Where customStyle uses the specified line length, mode = PageMode and ribbonsPerLine = 1. %The default pretty printer returning Ys Uses the default  , called 'style. Equivalent to  prettyStyle style Customizable pretty printer. Takes a user defined  as a parameter and uses  to obtain the result  Equivalent to:  fullPP outputIO (putChar '\n') #Semi-customizable pretty printer. Equivalent to:   ppStyle customStyle [Where customStyle uses the specified line length, mode = PageMode and ribbonsPerLine = 1. The default Pretty Printer, Uses the default  , called . Equivalent to  ppStyle style     a      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_]^`]ab]^c]^defghijkGenericPretty-1.1.7Text.PrettyPrint.GenericPrettyText.PrettyPrint.MyPrettyghc-prim GHC.GenericsGenericStylemode lineLengthribbonsPerLine renderStylestyleOutdocPrecdocdocListdocPrecDefaultfullPPoutputIO outputStr prettyStyle prettyLenprettyppStyleppLenpp ghc-7.2.1Pretty bufLeftRenderprintDoc fullRender showDocWithfcatfsepcatsep<+><>$+$$$nest zeroWidthTextptextftexttextcharisEmptyempty punctuatehangvcathsephcatcparenbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecommacolonsemiPageMode ZigZagModeLeftMode OneLineModeModeDocChrStrPStrLStr TextDetailsGOutout1 isNullaryTypeInfPrefRecbaseGHC.ShowShow showsPrecGHC.BaseStringshowshowList GHC.TypesChar docListWithmiddle wrapParensshowDocOneLine