HOOGY o$i$+<>a  #$))+-114489;;b ,-00c )),-4499d  "#./88:;e  &(*,,.468:;fg##;;h::i ""&&++002288:;jk--l ""++/06688m  "#22;;n !"$$&&))++.1o  "#*+00:;p#)0134q **r $'+155::s  !!$$''**/02688t  !!%+//5:u )*v99w::x((78::y%&//66z:;f.ecMc()->AllAnyy BlockReasonlBoolZCCharCClockCDevCDoubleUCFloatCInoCIntlCIntMax$CIntPtrCLDoubleCLLong;CLongCModeCOffcCPidCPtrdiffCSCharCShortC CSigAtomicCSizeCSsizekCTime9CUCharCUIntCUIntMaxaCUIntPtrCULLongCULongCUShortACWcharChanCharComplex ConsoleEventConstr ConstrRepDataRepDataTypeDocyDouble`DynamicGE128E6)EitherErrno ExceptionFdFixityFloatGeneralCategoryrHashDataiIOSId>Inserts:IntInt16Int32 Int64 Int8 IntPtrm IntegerU LexemeL Maybe NestedAtomically NoMethodError NonTermination Ordering P PatternMatchFailx QSemn QSemNd ReadPK ReadPrec2 RecConError RecSelError RecUpdError STM StableName TVar ThreadId ThreadStatus Timeouty Uniqueq VersionV Word= Word16$ Word32 Word64 Word8 WordPtr ZipList| [::]m [],  TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableEqOrdShowReadTypeableOrdEqTypeableShow ExceptionEqShowOrdEqShowEqOrdTypeable Typeable1 Typeable1 Typeable1FunctorMonadTypeableShow ExceptionTypeableShow ExceptionTypeableShow ExceptionFunctorMonad MonadPlusFunctorMonad MonadPlusTypeableTypeableTypeableShow ExceptionMonad MonadPlusMonoidDataIxTypeableShow ExceptionTypeableShow ExceptionTypeableShow Exception TraversableFoldable Applicative AlternativeMonadFix MonadPlusFunctorMonadShowEq PrintfArgDataBitsIx ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorable PrintfArgDataStorableBitsIxEqFunctor Applicative ApplicativeMonadFixShowEqIxBoundedShowReadEnumOrdEq PrintfArgDataStorableShowEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqTypeable ExceptionShowEqEq Typeable2 HasResolution HasResolution ExceptionTypeableShow PrintfArgDataStorableShowShowShowEqShowEqShowEqReadShowEnumOrdEqTypeable Typeable1 PrintfArgIsCharDataStorableIx Typeable1 ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqDataStorableIxShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoopCategoryMonoidDataEqOrdIx ByteCountECString6 CStringLenCWString  CWStringLen ClockTickConIndexDeviceID EpochTimeFileIDFileMode FileOffsetFilePathFinalizerEnvPtr{ FinalizerPtrXIOErrorJIPr8Limit0Micro"PicoPrec ProcessGroupID ProcessIDRationalReadS SampleVarShowSStringu[]Char[]Char[]CharaMVar(,)IntMVaraa[]Char[](,)a[]CharRatioIntegerCPidCPidIntFixedE12FixedE6CLong(,)IntInt IOExceptionaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoCTimeCDevIntCClock(,)PtrCWcharIntPtrCWchar(,)PtrCCharIntPtrCCharCSize(c[ca^bYcPdLeeIfPEgDh Ci>j>kt>l;m8n5o2p+/q.r*s%tj!uvxwLzigplistZipListzag&m-o4d;eBMode#neRorbaintue|modeIOModepahm:pedamonad WrappedMonadrrow$ WrappedArrowoAnHaOdV WrappedMonadrorvo}w WrappedArrowrdWord#C1,368ptrWordPtrWord84Word642Word3263Word16Word#aYk`WeakWordersionVersionn p% serinterru p t AsyncExceptionp, e3 r: cA aH sO eV l] ed tk tr ey r GeneralCategoryd i q u e Uniquee f !r f l o w ArithExceptioni!n!e!d%!e,!l3!e:!mA!eH!nO!tV!ArrayExceptionel%h#i8#r"v"y!c"p!e!a!r!e!p!TypeRepb!l!e!Typeable1"2q"3^"4K"58"6%"7" Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1o"n"TyCona"r"TVar#"TVar#a"v"e"r#s#a#b#l#e## Traversablet?#lF#eM#cT#a[#sb#ei#lp#ew#t~#t#e#r#GeneralCategoryr#e#a#d#b0%d %f$i$k^$r"$s#t#a#t#u$s $ ThreadStatusu)$n0$n7$i>$nE$gL$ ThreadStatusie$ll$ls$ez$d$AsyncExceptiond$ThreadId#$ ThreadId#i$n$i$s$h$e$d$ ThreadStatusi%e%d% ThreadStatusl7%o>%cE%kL%eS%dZ% ThreadStatusxs%tz%d%e%t%a%i%l%s% TextDetailsa*e4*h)of)p(tj&u&y%m%b%o%l&Lexemem]&r&r%&o,&g3&a:&tA&eH&GeneralCategorySumSTa'm'of'r&y&l&e&Style TextDetailse<'i&n&g&Stringc 'r&e&p&DataRepo'n's't&'r-' ConstrRepfW'pH'STRepSTRefrm'at'b{'l'e'StorableSTMbU(c(r't'e'#'State#r'a'y'STArrayk (o(v(e(r%(f,(l3(o:(wA(AsyncExceptionl\(ec(n(po(tv(r}( StablePtra(m(e( StableNamea(c(eQ)i(n(g(c(o(m(b(i)n )i)n)g )m')a.)r5)k<)GeneralCategoryGeneralCategorymm)et)e{)x)c)e)p)t)i)o)n) SomeExceptiono *u)t)d)o)w)n) ConsoleEventw*Shows%*ShowSe;*kB*fu*mN*oU*d\*ec*SeekModer|*o*m*e*n*d*SeekModem*p*l*e*v*a*r* SampleVara.e#+i+g +h+t+Eithera0-cM,l,q+t>+uE+rL+nS+iZ+na+oh+ro+dv+e}+r+ArgOrdera+u+i+r+e+o+r+d+e+r+ArgOrderr+g+ArgDescra,t,i,v,e#,s*,e1,e8,k?,SeekModec,s,u^,pe,dl,es,rz,r,o,r, RecUpdErrore,l,e,r,r,o,r, RecSelErroro,n,e,r-r -o-r- RecConErrord-l<-Realf-wT-o[-rb-li-dp- RealWorldl-r-a-c-RealFraco-a-t- RealFloatReadm.pL.s=.w-r.i.t.e.m.o#.d*.e1.IOModeReadSReadPr`.eg.cn.ReadPreco.d.e.IOModet.Lexemei.o.Ration.a.l.Rationals.e/m /QSemn/QSemNa1e}1ia1oE1r/s/to/uU/n\/cc/Lexemerv/Ptrt/r/ TextDetailse1ib0o/c/d/u/c/t/Producte/s/s/g 0i0d 0 ProcessIDr'0o.0u50p<0iC0dJ0ProcessGroupIDn0vn0au0t|0e0u0s0e0GeneralCategoryt0f0a0t0y0p0e0 PrintfTyper0g0 PrintfArgc71f1i$1x+1FixityPrecoL1lS1Poolch1oo1Picor1m1u1t1e1ArgOrderg2r42t1t1e1r1n1m1a1t1c1h1f2a 2i2l2PatternMatchFaila;2gB2rI2aP2pW2h^2se2el2ps2az2r2a2t2o2r2GeneralCategorye2m2o2d2e2Moden5p4rf4t83v2e3r3f3l3o3w$3ArithExceptionh?3eF3rM3l.4n3p3sc3yj3mq3bx3o3l3GeneralCategoryu3n3c3t3u3a3t3i3o3n3GeneralCategoryu3m4b 4e4r4GeneralCategorye54t<4tC4eJ4rQ4GeneralCategorydm4Orde4r4i4n4g4Orderinge05t4a5d4i4o4n4OptDescre4s4c4r5OptDescrr5g"5ArgDescrn75p>5uE5nL5cS5tZ5ua5ah5to5iv5o}5n5GeneralCategorye5l5i5n5e5m5o5d5e5Modee:8o6u5m5Numa8b7my7n6r6t'6aS6h36i:6nA6gH6MaybesZ6sa6ih6go6nv6e}6d6GeneralCategorye6p6DataReps7t6e6r6m6i6n6a6t6i6o6n7NonTerminationp%7a,7c37i:7nA7gH7mO7aV7r]7kd7GeneralCategorye7t7h7o7d7e7r7r7o7r7 NoMethodErroru7f7f7e7r7i8n8g8 BufferModer%8g,8ArgDescrsA8tH8eO8dV8a]8td8ok8mr8iy8c8a8l8l8y8NestedAtomicallya8;i;o9u9v8a8r8MVar#8MVar#t9a9b9l9e$9a9b09y79t>9eE9aL9rS9rZ9aa9yh9#o9MutableByteArray#r9r9a9y9#9 MutableArray#db:n9a9o9i9d9Monoidd:MonadfB:p:l!:u(:s/: MonadPlusiI:xP:MonadFixe;in:fu:i|:e:r:l:s:y:m:b:o:l:GeneralCategorye:t:t:e:r:GeneralCategoryModec;r";o);Microta;yD;bK;eR;Maybehh;so;yv;m};b;o;l;GeneralCategoryaX>e=i<o;g<s7<w;e;r;c;a;s;e;l;e<t <t<e<r"<GeneralCategorys><oE<fL<pS<rZ<ea<ch<io<sv<i}<o<n<ArithExceptiono<f<f< ConsoleEventmz=n<e<b2=s<e<p<a<r=a=t=o=r=GeneralCategoryu9=f@=fG=eN=rU=i\=nc=gj= BufferModei=t=Limitf!>t=x=e=m=e=Lexemet=e=r=n=u=m=b=e>r >GeneralCategoryt(>Eitherm9>o@>dG>eN>Modes_>tf>Lastl{>e>i>s>l>i>Kleisliu>s>t>MaybedBgBn~@oz?pf?s?x>IxcA?s ?t?r?i!?n(?g/?IsStringhH?aO?rV?IsCharrm?IPrIOe?m?r?e?f?IORefo?d?e?IOModer)@x?c?e?p?t?i@o @n@ IOExceptionr0@o7@r>@IOErrortT@y[@pb@ei@ IOErrorTypedPBf6BiAt@Int #A1A3A6A8AcRAeAp@r@e@p@DataRept@r@IntPtrgAe:ArAa!Al(AIntegralrAAIntegeroYAn`AsgAtnAruA ConstrRepInt84AInt642AInt326AInt16Int#tAiAaAlAqBu BoBtBe!BGeneralCategoryi=BxDBFixityeWBx^BoeBulBtsBozBfBbBoBuBnBdBsBArrayExceptionnBoBrBeBHandlereBnBtBLexemeaCenCpCr!Ci(Cn/Ct6Cf=CtDCyKCpRCeYC HPrintfTypeauCp|CoCvCeCrCfClCoCwCAsyncExceptionnlDsCh6DrCeCsCoClCuDt DiDoDnD HasResolutiont=DaDDbKDlRDeYD HashTabledsDlzDeDHandlepDrDHandleroDsDnD HandlePosneDnDeDrDaDlDcEa EtEeEg"Eo)Er0Ey7EGeneralCategorydYIiaGlFoFrEupEnwEcEpEtErEFunPtrtEoErEFunctoraEcEtEiEoEnEaElE FractionallFrFeNFm+Fa2Ft9FGeneralCategoryiUFg\FncFpjFtqFrxF ForeignPtrdFaFbFlFeFFoldableoFaFtFFloatc/GiGrFeFpGDataRepnGgGFloatingo6Gn=GsDGtKGrRG ConstrReplHnGrGxwGeGiGtGyGFixitydGFixedsGtGFirstaGlGiHqGuGoGtHe HGeneralCategoryz&He-Hr4HedHp@HtGHrNH FinalizerPtrnkHvrHpyHtHrHFinalizerEnvPtreHiBImIoHpHaHtHhHFilePathfHfHsHeItI FileOffseto"Id)Ie0IFileModedIIFileIDFd 1vL6jLi>LnKoKpQKqEKrJxIcJiItIctJe-JfIsIuIcIcIeIsIsIExitCodeaIiJl JuJrJeJExitCodex4Jc;JeBJpIJtPJiWJo^JneJ Exceptiono{JdJeJExitCodeeJpJtJiJoJnJ Exception ExceptionrJn/KoJrKcKaKlKlK ErrorCallo6KErrnoEqoXKc_KhfKtmKitKm{KeK EpochTimefKLexemecKdKuKmKEnumoKEndolKoKsKiKnLg LmLaLr"Lk)LGeneralCategorytELhLLeSLrZLEitherE62}LE12a8OeMiMoFMu*MyLnLaMeLxLcLeLpLtLiLoLnL Exceptionm MiMcMDynamica1Ml8MDualcMulMwWMn^MDownbsMlzMeMDoubleDocvMiMdMeMbMyMzMeMrMoMArithExceptionaOcNfNnHNvNiNc!Ne(Ni/Nd6NDeviceIDoONrVNm]NadNlkNArithExceptionaNuNlNtNHandleriNmNaNlNnNuNmNbNeNrNGeneralCategoryd OlOoOcOk&ODeadlocksOtDOaKODatarOtcOyjOpqOexODataTypeeOpODataRephOpOuOnOcOtOuOaOtOiOoOnOGeneralCategoryaYc8YdXfzXh5XiWjWlIVm%Vo+TpSsRtsRuPw_PcPskPtrPryPiPnPgPCWStringlPePnP CWStringLenhPaPrPCWcharcNRiQlQr5QsQhQoQrQt$QCUShortrSCSizeaTSt[SobSmiSipScwS CSigAtomicoSrStSCShorthSaSrSCSChariTtSrSdSiSfSfTCPtrdiffdTCPidfVmUnUtEUoLUrSUpZUuaUnhUcoUtvUu}UaUtUiUoUnUGeneralCategorynUdUeUxUConIndexpUlUeUxUComplexfVCOffo,Vd3Ve:VCModedUWl0WoZVcVnVskVerV ConsoleEventpVuVnVcVtVuVaVtViVoVnVGeneralCategorygVCLongkWtWiWcWkW ClockTicko7Wn>WgEWCLLongo\WucWbjWlqWexWCLDoublemWpWbWuWfWCJmpBufnWo'XtWCIntmXpWtWrWCIntPtraXxXCIntMaxCInoaRXrAX TextDetailsnlXr^XCharChaniXlXpXoXsXCFposoXaXtXCFloatlXeXCFilee#YoXuXbYl YeYCDoublev*YCDevhiYlDYoKYcRYkYYCClockapYrwYCChartYcYeYgYoYrYyYCategoryhYHandleri]l[oZrZu?ZyYtZe ZcZoZuZn%Zt,Z ByteCountfFZfMZeTZr[ZmbZoiZdpZewZ BufferModeeZaZkZ ConsoleEventoZuZnZdZeZdZBoundedlZBoolo[c[k[b]e^[r&[e-[a4[s;[oB[nI[ BlockReasonde[iD]oq[nx[b\d\ef\f\m[o[s[t[m[ BlockReasont[h[e[r[ BlockReasonv[a[r[ BlockReasono\r\e$\i+\g2\n9\c@\aG\lN\lU\ BlockReasonxm\ct\e{\p\t\i\o\n\ BlockReasone\a\d\m\v\a\r\BlockedOnDeadMVarl]a ]c]k]h]o%]l,]e3] BlockReasonnK]dR]eY]f`]ig]nn]iu]t|]e]l]y]BlockedIndefinitelyu]f]f]e]r]i]n]g] BufferModet]s^BitsbNcd*clfbnRbpar_s7^s^yC^nJ^cQ^eX^x_^cf^em^pt^t{^i^o^n^AsyncExceptione^r^t^i^o^n^f^a^i^l^e^d^AssertionFailedg[ai`r&_av`o2_w9_ArrowaF`c`l_m_p_zf_em_rt_o{_ ArrowZerol_u_s_ ArrowPluso_n_a_d_ ArrowMonado_o_p_ ArrowLooph`o`i#`c*`e1` ArrowChoicepM`pT`l[`yb` ArrowApplyy}`Array#`e`x`c`e`p`t`i`o`n`ArrayExceptionArray#t`hae axacae ap'at.ai5ao !-.235;ooooocoQo=o+oonnnnnnonYnEn%nnmmmmmmomWm;mmmllll{lclAl-llkkkkk}k[k3kkkjjjjjrj^j8jj zigzagmode'j ZigZagMode> zerowidthtextJj zeroWidthText=vcatgjvcat< textdetailsj TextDetails;textjtext:stylejStyle78style9strjStr6spacejspace5sepjsep4semiksemi3rparen&krparen2ribbonsperlineFkribbonsPerLine1 renderstylekk renderStyle0renderkrender/rbrackkrbrack.rbracekrbrace-rationalkrational,quoteskquotes+ punctuatel punctuate*ptext!lptext)pstr6lPStr( prettyprintQl PrettyPrintprettynlprettyparenslparens'pagemodelPageMode& onelinemodel OneLineMode%nestlnest$modelMode"mode#lparenmlparen! linelength*m lineLength leftmodeHmLeftModelbrackbmlbracklbracezmlbraceisemptymisEmptyintegermintegerintminthughespjmHughesPJhsepmhsephcatnhcathangnhang fullrender4n fullRenderfsepNnfsepfloatcnfloatfcatxnfcatequalsnequalsemptynempty doublequotesn doubleQuotesdoublendoubledocnDoccomma ocomma colonocolon chr3oChr charFochar catYocat bracketspobracketsbracesobraces<>o<><+>o<+>$+$o$+$$$o$$>q,$1264:Ł{?ڀ}W}}|>|{zlzyyRyx x|w2wvwv-vuu utr]rq1qp ZigZagMode ZigZagMode :: ModeqqModeWith zig-zag cuts  zeroWidthText zeroWidthText :: String -> DocqqStringDocYSome text, but without any width. Use for non-printing text such as a HTML or Latex tags vcatvcat :: [Doc] -> Doc>r+r[]DocDocList version of $$.  TextDetailsdata  TextDetailsrtexttext :: String -> DocrrStringDocA document of height 1 containing a literal string. text satisfies the following laws: The side condition on the last law is necessary because text "" has height 1, while empty has no height. stylestyle :: StylettStylePThe default style (mode=PageMode, lineLength=100, ribbonsPerLine=1.5). Style Style :: Mode -> Int -> Float -> StyleuluModeIntFloatStyleStyledata StyleuA rendering style. StrStr :: String ->  TextDetails)vvString TextDetailsspacespace :: Docav[vDocA space character sepsep :: [Doc] -> Docvv[]DocDoc#Either hsep or vcat. semisemi :: DocwwDocA ';' character rparenrparen :: DochwbwDocA ')' character ribbonsPerLineribbonsPerLine :: Style -> FloatwwStyleFloat&Ratio of ribbon length to line length  renderStyle renderStyle :: Style -> Doc -> String~xgxStyleDocString9Render the document as a string using a specified style. renderrender :: Doc -> String yxDocStringARenders the document as a string using the default style. rbrackrbrack :: DocyyDocA ']' character rbracerbrace :: DocyyDocA '}' character rationalrational :: Rational -> Doc@z.zRationalDoc(
rational n = text (show n)
quotesquotes :: Doc -> DoczzDocDoc Wrap document in '...'  punctuate punctuate :: Doc -> [Doc] -> [Doc]R{4{Doc[]Doc[]Doc`
punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]
ptextptext :: String -> Doc|{StringDoc4An obsolete function, now identical to text. PStrPStr :: String ->  TextDetails||String TextDetailsparensparens :: Doc -> Doc||DocDoc Wrap document in (...) PageModePageMode :: ModeL}E}ModeNormal  OneLineMode OneLineMode :: Mode}}ModeAll on one line nestnest :: Int -> Doc -> Doc ~}IntDocDocNest (or indent) a document by a given number of positions (which may also be negative). nest satisfies the laws: The side condition on the last law is needed because empty is a left identity for <>. modemode :: Style -> Mode(StyleModeThe rendering mode Modedata ModegRendering mode. lparenlparen :: DocDocA '(' character  lineLength lineLength :: Style -> IntStyleIntLength of line, in chars LeftModeLeftMode :: ModevoMode&No indentation, infinitely long lines lbracklbrack :: DocւЂDocA '[' character lbracelbrace :: Doc DocA '{' character isEmptyisEmpty :: Doc -> BoolvDocBool-Returns True if the document is empty integerinteger :: Integer -> Doc IntegerDoc'
integer n = text (show n)
intint :: Int -> Doc|oIntDoc#
int n = text (show n)
hsephsep :: [Doc] -> Doc[]DocDoc"List version of <+>. hcathcat :: [Doc] -> DociV[]DocDoc!List version of <>. hang hang :: Doc -> Int -> Doc -> DocDocIntDocDoc0
hang d1 n d2 = sep [d1, nest n d2]
 fullRender fullRender :: Mode -> Int -> Float -> (TextDetails -> a -> a) -> a -> Doc -> a ׆ModeIntFloat TextDetailsaaaDoca!The general rendering interface. fsepfsep :: [Doc] -> Docn[]DocDoc("Paragraph fill" version of sep. floatfloat :: Float -> DocFloatDoc%
float n = text (show n)
fcatfcat :: [Doc] -> Docta[]DocDoc("Paragraph fill" version of cat. equalsequals :: DocֈЈDocA '=' character emptyempty :: DocDocThe empty document, with no height and no width. empty is the identity for <>, <+>, $$ and $+$, and anywhere in the argument list for sep, hcat, hsep, vcat, fcat etc.  doubleQuotes doubleQuotes :: Doc -> DocsfDocDoc Wrap document in "..." doubledouble :: Double -> DocيDoubleDoc&
double n = text (show n)
Docdata Doc9_The abstract type of documents. The Show instance is equivalent to using render. commacomma :: DocЋʋDocA ',' character coloncolon :: DocDocA ':' character ChrChr :: Char ->  TextDetailsnChar TextDetailscharchar :: Char -> DocҌČCharDocBA document of height and width 1, containing a literal character. catcat :: [Doc] -> DocfS[]DocDoc#Either hcat or vcat. bracketsbrackets :: Doc -> DocݍЍDocDoc Wrap document in [...] bracesbraces :: Doc -> DocM@DocDoc Wrap document in {...} <> (<>) :: Doc -> Doc -> DocώDocDocDocDBeside. <> is associative, with identity empty. <+> (<+>) :: Doc -> Doc -> DocweDocDocDocBeside, separated by space, unless one of the arguments is empty. <+> is associative, with identity empty. $+$ ($+$) :: Doc -> Doc -> DocaODocDocDocSAbove, with no overlapping. $+$ is associative, with identity empty. $$ ($$) :: Doc -> Doc -> DocDocDocDocAbove, 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
     there
$$ is associative, with identity empty, and also satisfies
  • (x $$ y) <> z = x $$ (y <> z), if y non-empty.
 PrettyPrintmodule Text. PrettyPrintJRe-export of Text.PrettyPrint.HughesPJ to provide a default pretty-printing library. Marked experimental at the moment; the default library might change at a later date. prettypackage pretty&~Pretty-printing library This package contains John Hughes's pretty-printing library, heavily modified by Simon Peyton Jones. HughesPJmodule Text.PrettyPrint.HughesPJ5John Hughes's and Simon Peyton Jones's Pretty Printer Combinators Based on The Design of a Pretty-printing Library in Advanced Functional Programming, Johan Jeuring and Erik Meijer (eds), LNCS 925 http://www.cs.chalmers.se/~rjmh/Papers/pretty.ps Heavily modified by Simon Peyton Jones, Dec 96 >,Text PrettyPrintText PrettyPrintHughesPJapretty1.0.1.0Dhttp://hackage.haskell.org/packages/archive/pretty/1.0.1.0/doc/html/Ahttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/pretty