h*7N0~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 3000.4.0.0(c) Andy Gill, and the Oregon Graduate Institute of Science and Technology, 1999-2001 BSD-style (see the file LICENSE)$Chris Dornan StablePortable Safe-Inferred^xhtmlCreates a (1x1) table entryxhtmlComposes tables vertically.xhtmlComposes tables horizontally.xhtmltrans flips (transposes) over the x and y axis of the table. It is only used internally, and typically in pairs, ie. (flip ... munge ... (un)flip).xhtmlThis is the other thing you can do with a Table; turn it into a 2D list, tagged with the (x,y) sizes of each cell in the table.34(c) Andy Gill, and the Oregon Graduate Institute of Science and Technology, 1999-2001, (c) Bjorn Bringert, 2004-2006 BSD-style (see the file LICENSE)$Chris Dornan StablePortable Safe-Inferred"%&Exhtml8CHANGEATTRS is a more expressive alternative to ADDATTRSxhtmlHTML is the class of things that can be validly put inside an HTML tag. So this can be one or more  elements, or a , for example. xhtmlAttributes with name and value.xhtmlA important property of Html is that all strings inside the structure are already in Html friendly format.xhtml?..just..plain..normal..text... but using © and &amb;, etc.xhtmltag with internal markup xhtml%Put something inside an HTML element.xhtmlCreate a piece of HTML which is the concatenation of two things which can be made into HTML.xhtmlAn empty piece of HTML.xhtmlChecks whether the given piece of HTML is empty. This materializes the list, so it's not great to do this a bunch.xhtml)Constructs an element with a custom name.xhtmlConstructs an element with a custom name, and without any children.xhtml-Processing Strings into Html friendly things.xhtml Copied from  blaze-builderxhtml Copied from  blaze-builderxhtmlThis is not processed for special chars. use stringToHtml or lineToHtml instead, for user strings, because they understand special chars, like .xhtmlDoes not process special characters, or check to see if it is empty.xhtmlOutput the HTML without adding newlines or spaces within the markup. This should be the most time and space efficient way to render HTML, though the output is quite unreadable.xhtmlOutputs indented HTML. Because space matters in HTML, the output is quite messy.xhtmlOutputs indented HTML, with indentation inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using showHtml or  renderHtml.xhtmlRender a piece of HTML without adding a DOCTYPE declaration or root element. Does not add any extra whitespace.xhtmlRender a piece of indented HTML without adding a DOCTYPE declaration or root element. Only adds whitespace where it does not change the meaning of the document.xhtmlRender a piece of indented HTML without adding a DOCTYPE declaration or a root element. The indentation is done inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using  or .xhtml6Show a single HTML element, without adding whitespace.xhtmlShow a start tagxhtmlShow an end tagxhtmlThe names of all elements which can be represented using the empty tag short-hand.xhtml xhtmlParentxhtmlChildxhtml Element namexhtmlElement contentsxhtmlDOCTYPE declarationxhtmlDOCTYPE declarationxhtmlDOCTYPE declarationxhtml* if the empty tag shorthand should be usedxhtmlTag namexhtml Attributesxhtml"Whitespace to add after attributesxhtmlTag namexhtml Whitespace to add after tag name9    8 72  Safe-Inferred"  Safe-Inferred" !"#  Safe-Inferred"00$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS  Safe-Inferred"TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred"xhtml Convert a  to , converting characters that need to be escaped to HTML entities.xhtml?This converts a string, but keeps spaces as non-line-breakable.xhtmlThis converts a string, but keeps spaces as non-line-breakable, and adds line breaks between each of the strings in the input list.xhtmlCopyright sign.xhtmlNon-breaking space.xhtmlSame as . Safe-Inferred"sxhtmlThe DOCTYPE for XHTML 1.0 Strict.xhtmlOutput the HTML without adding newlines or spaces within the markup. This should be the most time and space efficient way to render HTML, though the output is quite unreadable.xhtmlOutputs indented HTML. Because space matters in HTML, the output is quite messy.xhtmlOutputs indented XHTML. Because space matters in HTML, the output is quite messy.xhtmlOutputs indented HTML, with indentation inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using  or .xhtml3The code of the "dominant" language of the webpage.xhtmlAll the , including a header.   yTl_Xbsu|UVWYZ[\]^`acfdeghijkmnopqrtvwxz{}~)IR$@CJ%&'(*+,-./0123456789:;<=>?ABDEFGHKLMNOPQS   TUVWXYZ[\]_^`abcfdeghijklmnopqrstuvwxyz{|}~$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS Safe-Inferred" xhtmlOutput the HTML without adding newlines or spaces within the markup. This should be the most time and space efficient way to render HTML, though the output is quite unreadable.xhtmlOutputs indented HTML. Because space matters in HTML, the output is quite messy.xhtmlOutputs indented HTML, with indentation inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using  or .   yTl_Xbsu|UVWYZ[\]^`acfdeghijkmnopqrtvwxz{}~)IR$@CJ%&'(*+,-./0123456789:;<=>?ABDEFGHKLMNOPQS !"#   TUVWXYZ[\]_^`abcfdeghijklmnopqrstuvwxyz{|}~$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS !"# Safe-Inferred&jxhtmlWe internally represent the Cell inside a Table with an object of the type  Int -> Int -> HtmlWhen we render it later, we find out how many columns or rows this cell will span over, and can include the correct colspan/rowspan command.xhtmlrenderTable takes the HtmlTable, and renders it back into and Html object.xhtmlIf you can't be bothered with the above, then you can build simple tables with simpleTable. Just provide the attributes for the whole table, attributes for the cells (same for every cell), and a list of lists of cell contents, and this function will build the table for you. It does presume that all the lists are non-empty, and there is at least one list.Different length lists means that the last cell gets padded. If you want more power, then use the system above, or build tables explicitly.  34 Safe-Inferred"( xhtmlThe basic idea is you render your structure in the form of this tree, and then use treeHtml to turn it into a Html object with the structure explicit.xhtmlThis uses the above tree rendering function, and displays the Html as a tree structure, allowing debugging of what is actually getting produced. Safe-Inferred"(A" Safe-Inferred"(  Safe-Inferred"+'xhtmlOutput the HTML without adding newlines or spaces within the markup. This should be the most time and space efficient way to render HTML, though the output is quite unreadable.xhtmlOutputs indented HTML. Because space matters in HTML, the output is quite messy.xhtmlOutputs indented HTML, with indentation inside elements. This can change the meaning of the HTML document, and is mostly useful for debugging the HTML output. The implementation is inefficient, and you are normally better off using  or .    yTl_Xbsu|UVWYZ[\]^`acfdeghijkmnopqrtvwxz{}~)IR$@CJ%&'(*+,-./0123456789:;<=>?ABDEFGHKLMNOPQS !"#    TUVWXYZ[\]_^`abcfdeghijklmnopqrstuvwxyz{|}~$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS !"#(c) Andy Gill, and the Oregon Graduate Institute of Science and Technology, 1999-2001, (c) Bjorn Bringert, 2004-2006 BSD-style (see the file LICENSE)$Chris Dornan StablePortable Safe-Inferred.  )IRy  $Tl@_CJXbsu|% !"#&'(*+,-./0123456789:;<=>?ABDEFGHKLMNOPQSUVWYZ[\]^`acfdeghijkmnopqrtvwxz{}~ !"#$%&'()*+,-. / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                   <'xhtml-3000.4.0.0-Fq0FIELKEit5wqYCbQAhDdText.XHtml.TransitionalText.XHtml.StrictText.XHtml.FramesetText.XHtml.Table Text.XHtmlxhtmlText.XHtml.BlockTableText.XHtml.InternalsText.XHtml.Frameset.ElementsText.XHtml.Frameset.AttributesText.XHtml.Strict.AttributesText.XHtml.Strict.ElementsText.XHtml.ExtrasText.XHtml.Debug"Text.XHtml.Transitional.Attributes Text.XHtml.Transitional.Elementsbytestring-0.11.5.2 Data.ByteString.Builder.InternalBuilder CHANGEATTRS changeAttrsADDATTRS!HTMLtoHtmltoHtmlFromListHtmlHtmlAttrLText htmlAttrPair<< concatHtml+++noHtmlisNoHtmltagitag emptyAttrintAttrstrAttrhtmlAttrstringToHtmlStringprimHtmlshowHtmlFragmentrenderHtmlFragmentprettyHtmlFragmentframeframesetnoframes frameborder marginheight marginwidthnoresize scrollingactionalignaltaltcodearchivebaseborder bordercolor cellpadding cellspacingcheckedcodebasecolscolspancontentcoordsdisabledenctypeheighthrefhreflang httpequiv identifierismaplang maxlengthmethodmultiplenamenohrefrelrevrowsrowspanrulesselectedshapesizesrctheclasstheforthestylethetypetitleusemapvalignvaluewidthabbracronymaddressanchorareabdobig blockquotebodyboldbuttonbrcaptioncitecolcolgroupddefdefinedeldlistdterm emphasizefieldsetformh1h2h3h4h5h6headerhrimageinputinsitalicskeyboardlabellegendlimetanoscriptobjectolistoptgroupoption paragraphparamprequotesamplescriptselectsmallstrongstylesubsuptabletbodytdtextareatfootththeadthebasethecodethedivthehtmlthelinkthemapthespanthetitletrttulistvariableHotLink hotLinkURLhotLinkContentshotLinkAttributesURL stringToHtml lineToHtml linesToHtml primHtmlChar copyright spaceHtmlbulletphotlinkordList unordListdefListwidgetcheckboxhiddenradioresetsubmitpassword textfieldafileclickmapmenuguidocTypeshowHtml renderHtmlrenderHtmlWithLanguage prettyHtml HtmlTable HTMLTABLEcellabovebeside<->abovesbesides simpleTable$fShowHtmlTable$fHTMLHtmlTable$fHTMLTABLEHtml$fHTMLTABLEHtmlTableHtmlTreeHtmlLeafHtmlNodetreeHtml treeColors debugHtmlalink backgroundbgcolorclearcodecolorcompactfacehspacelinknoshadenowrapstarttargettextversionvlinkvspaceaquablackbluefuchsiagraygreenlimemaroonnavyolivepurpleredsilvertealyellowwhiteappletbasefontcenterdirfontiframeisindexthemenustrike underlinesingletrans getMatrix BlockTable showsTable showTableGHC.BaseString HtmlElement HtmlStringHtmlTagcharUtf8HtmlEscapedwordHtmlEscapedghc-prim GHC.Classes<primHtmlNonEmptyBuildershowHtmlInternalrenderHtmlInternalprettyHtmlInternal showHtml' renderTag renderEndTagvalidHtmlITags$fSemigroupHtml GHC.TypesTrueunHtml markupTag markupAttrs markupContentgetHtmlElementsbuilderToStringlazyByteStringToStringtextToHtmlStringlazyTextToHtmlStringmapDlistmkHtml renderHtml' prettyHtml'isValidHtmlITag renderTable