úÎ@U:·;      !"#$%&'()*+,-./0123456789:"(c) The University of Glasgow 2001/BSD-style (see the file libraries/base/LICENSE)libraries@haskell.org provisionalportableSafe6%The abstract type of documents. The ;! instance is equivalent to using 9.Rendering mode.Normal With zig-zag cuts%No indentation, infinitely long lines All on one line A rendering style. The rendering mode Length of line, in chars%Ratio of ribbon length to line lengthThe default style (1mode=PageMode, lineLength=100, ribbonsPerLine=1.5).A ';' characterA : characterA ',' characterA space characterA '=' characterA '(' characterA ')' characterA '[' characterA ']' characterA '{' characterA '}' character int n = text (show n) integer n = text (show n) float n = text (show n) double n = text (show n) rational n = text (show n) Wrap document in '...'!Wrap document in "...""Wrap document in (...)#Wrap document in [...]$Wrap document in {...}%List version of 2.&List version of 3.'List version of 0.( "hang d1 n d2 = sep [d1, nest n d2]) @punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]*2The empty document, with no height and no width. * is the identity for 2, 3, 0 and 1), and anywhere in the argument list for 4, %, &, ', 7 etc.+Returns < if the document is empty,AA document of height and width 1, containing a literal character.-5A document of height 1 containing a literal string. - satisfies the following laws: - s 2 - t = - (s=t)- "" 2 x = x, if x non-empty8The side condition on the last law is necessary because - "" has height 1, while * has no height..'An obsolete function, now identical to -./[Nest (or indent) a document by a given number of positions (which may also be negative). / satisfies the laws: / 0 x = x / k (/ k' x) = / (k+k') x / k (x 2 y) = / k z 2 / k y / k (x 0 y) = / k x 0 / k y / k * = *x 2 / k y = x 2 y, if x non-empty6The side condition on the last law is needed because * is a left identity for 2.0±Above, except that if the last line of the first argument stops at least one position before the first line of the second begins, these two lines are overlapped. For example: % text "hi" $$ nest 5 (text "there") lays out as  hi there rather than  hi there0 is associative, with identity *, and also satisfies(x 0 y) 2 z = x 0 (y 2 z), if y non-empty.1Above, with no overlapping. 1 is associative, with identity *.2 Beside. 2 is associative, with identity *.3;Beside, separated by space, unless one of the arguments is *. 3 is associative, with identity *.4Either & or '.5Either % or '.6"Paragraph fill" version of 4.7"Paragraph fill" version of 5.88Render the document as a string using a specified style.93Renders the document as a string using the default .: The general rendering interface.k>?@ABCDEF  !"#$%&'()GHIJKLM*+,-./NOP01QRST23UV45WXY67Z[\]^_`abcd89ef:Rendering mode Line lengthRibbons per lineWhat to do with textWhat to do at the end The documentResultghijklm;  !"#$%&'()*+,-./0123456789:;,-."#$ !*23%&01'4567/()+9 8: X>?@ABCDEF   !"#$%&'()GHIJKLM*+,-./NOP01QRST23UV45WXY67Z[\]^_`abcd89ef:ghijklm0123"(c) The University of Glasgow 2001/BSD-style (see the file libraries/base/LICENSE)libraries@haskell.org experimentalportableSafe;  !"#$%&'()*+,-./0123456789:n       !"#$%&'()*+,-./0123456789:;<=>?@AB=CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuprett_LdktDbq3HP1CUD3h1pWYLOText.PrettyPrint.HughesPJText.PrettyPrint TextDetailsChrStrPStrDocModePageMode ZigZagModeLeftMode OneLineModeStylemode lineLengthribbonsPerLinestylesemicoloncommaspaceequalslparenrparenlbrackrbracklbracerbraceintintegerfloatdoublerationalquotes doubleQuotesparensbracketsbraceshcathsepvcathang punctuateemptyisEmptychartextptextnest$$$+$<><+>sepcatfsepfcat renderStylerender fullRenderbaseGHC.ShowShowghc-prim GHC.TypesTrueGHC.Base++RDocEmptyNilAbove TextBesideNestUnionNoDocBesideAbove reduceDoc space_textnl_text nilAbove_ textBeside_nest_union_mkNestmkUnionabove_above aboveNest nilAboveNestbeside_beside nilBesidesepXsep1sepNBfillfill1fillNBbestnicestnicest1fitsminnfirst nonEmptySetoneLinershowDoc string_txtdisplay cant_fail easy_displayindentmulti_chspaces $fShowDoc