úÎGÛE—      Safe-Infered  The class  is the equivalent of  ?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 . &Convert a value to a pretty printable .  is the equivalent of  !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  should be shown 8 in double quotes, rather than between square brackets. ( is a fully customizable Pretty Printer =Every other pretty printer just gives some default values to  6Utility function that handles the text conversion for .  transforms the text into s and outputs it directly. 6Utility function that handles the text conversion for .  just leaves the text as a  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 s Equivalent to   prettyStyle defaultStyle HWhere defaultStyle = (mode=PageMode, lineLength=80, ribbonsPerLine=1.5) 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, Equivalent to:   ppStyle defaultStyle HWhere defaultStyle = (mode=PageMode, lineLength=80, ribbonsPerLine=1.5) %)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  the resulting Doc *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   !"#$%&'()*+  "  !"#$%&'()*+,      !"#$%&'()*+,-./012345678GenericPretty-1.2.0Text.PrettyPrint.GenericPrettyPrettyDocText.PrettyPrint.MyPrettyStyleghc-prim GHC.GenericsGenericOutdocPrecdocdocListfullPPoutputIO outputStr prettyStyle prettyLenprettyppStyleppLenppbaseGHC.ShowShow showsPrecshowshowList GHC.TypesCharGHC.BaseString $fOut(,,,,,,) $fOut(,,,,,) $fOut(,,,,) $fOut(,,,) $fOut(,,)$fOut(,) $fOutEither $fOutMaybe $fOutBool$fOut[] $fOutRatio $fOutDouble $fOutFloat $fOutInteger$fOutInt $fOutChar$fOut() $fGOut:*: $fGOut:+:$fGOutK1$fGOutM1 $fGOutM10 $fGOutM11$fGOutU1