"O      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNNoneOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Nonef      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\None[]^_`abcdefghijklmnopqrstuvwxyz{|}~Noneh     None !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Nonef      !"#$%&'()*+,-None[./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NonehNone29;IOT0&Everything is build around the simple newtype definition of the 0" transformer, which makes use the  instance of Blaze  and is basically a  writing Blaze :3OMap both the return value and markup of a computation using the given function5run the MarkupT and return a pair consisting of the result of the computation and the blaze markup rendered with a blaze renderer like : Wrapper for  is simply <"Wrapper for functions that modify  is simply ?Insert a lazy . See >. for reasons why this is an unsafe operation.$,-./0123456789:;<=>?Value to insertResulting HTML fragment@ABCDEFGHIJKLMNOI ! *'(&)%$#"+,-./0123456789:;<=>?@ABCDEFGHIJKJ012/3.-,485697:<;=*)('&%$#"! BCJDKEGFIH>? +A@",-./0123456789:;<=>?@ABCDEFGHIJKLMNONone9;OTUVWX3 ,-./0123456789>?ADEHIJKUVW3-UVWJDKEIH>? A012/3.,485697UVWXNoneOTYZ[\]8 ,-./0123456789>?ADEHIJKUVWYZ[\]Z[Y\]YZ[\]NoneOT^_`abc^_`abc^`b_ac^_`abcNoneOTdefdefdefdefNoneOTghghghghNoneOTijklmnopijklmnopiokmjplnijklmnopNone[qrstuvwxyz{|}~ ,-./0123456789>?ADEHIJKUVWYZ[\]qrstuvwxyz{|}~[qrstuvwxyz{|}~[qrstuvwxyz{|}~ NoneN      ,-./0123456789>?ADEHIJKUVWYZ[\]     N     N      NoneY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr ,-./0123456789>?ADEHIJKUVWYZ[\] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr Nonemstuvwxyz{|}~ ,-./0123456789>?ADEHIJKUVWYZ[\]stuvwxyz{|}~mstuvwxyz{|}~mstuvwxyz{|}~ None[      !"#$%&'()*+,-./0123456789: ,-./0123456789>?ADEHIJKUVWYZ[\]      !"#$%&'()*+,-./0123456789:[      !"#$%&'()*+,-./0123456789:[      !"#$%&'()*+,-./0123456789: NoneN;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ,-./0123456789>?ADEHIJKUVWYZ[\];<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~N;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~N;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneY ,-./0123456789>?ADEHIJKUVWYZ[\]YYNonem      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN ,-./0123456789>?ADEHIJKUVWYZ[\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN !"#$%&'()*+,-./012345464789:;<=>>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~||z{|        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  &*->?@ABGHIO[]^aefhijpwyz{~ &*->?@ABGHIO[]^aefhijpwyz{~  &*->?@ABGHIO[]^aefhijpwyz{~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  &*->?@ABGHIO[]^aefhijpwyz{~ &*->?@ABGHIO[]^aefhijpwyz{~  &*->?@ABGHIO[]^aefhijpwyz{~JC#blazeT-0.0.1-KfLNz39lYqh1FGxD7Lc7h5Text.BlazeT.Internal Text.BlazeTText.BlazeT.HtmlText.BlazeT.Renderer.Utf8Text.BlazeT.Renderer.StringText.BlazeT.Renderer.PrettyText.BlazeT.Renderer.TextText.BlazeT.Html4.FrameSetText.BlazeT.Html4.StrictText.BlazeT.Html4.TransitionalText.BlazeT.Html5Text.BlazeT.XHtml1.FrameSetText.BlazeT.XHtml1.StrictText.BlazeT.XHtml1.TransitionalText.BlazeT.XHtml5Text.BlazeT.XHtml5.Attributes*Text.BlazeT.XHtml1.Transitional.Attributes$Text.BlazeT.XHtml1.Strict.Attributes&Text.BlazeT.XHtml1.FrameSet.AttributesText.BlazeT.Html5.Attributes)Text.BlazeT.Html4.Transitional.Attributes#Text.BlazeT.Html4.Strict.Attributes%Text.BlazeT.Html4.FrameSet.Attributes renderHtmlbase Data.Foldablenull+blaze-markup-0.7.1.0-CgEg2S1gRb62uLfN2SPOVTText.Blaze.Internal!AttributeValue AttributeTag dataAttributecustomAttribute textCommentlazyTextComment stringCommentunsafeByteStringCommentunsafeLazyByteStringCommenttextTag stringTag textValuepreEscapedTextValue lazyTextValuepreEscapedLazyTextValue stringValuepreEscapedStringValueunsafeByteStringValueunsafeLazyByteStringValue!? Text.BlazepreEscapedToValuetoValueToValuepreEscapedTextBuilderValuetextBuilderValue attributegetTextgetUtf8ByteString getString StaticStringEmptyChoiceStringAppendChoiceStringExternal PreEscaped ByteStringTextStringStatic ChoiceString AttributableMarkup2MarkupMarkupMMarkupIMarkupT fromMarkupT mapMarkupT runMarkupTrunWith execMarkupTexecWith runMarkup execMarkup wrapMarkupT wrapMarkup wrapMarkupT2 wrapMarkup2unsafeByteStringunsafeLazyByteStringexternalcontents customParent customLeafpreEscapedTextpreEscapedLazyTextpreEscapedTextBuilder textBuilderpreEscapedStringstringtextlazyText$fIsStringMarkupT$fAttributable(->)$fAttributableMarkupT$fMonoidMarkupT$fFunctorMarkupT$fApplicativeMarkupT$fMonadMarkupT$fMonadWriterMarkupT$fMonadTransMarkupTToMarkuptoMarkuppreEscapedToMarkup $fToMarkupaHtmlHtmlMHtmlTtoHtmlpreEscapedToHtmlrenderMarkupBuilderrenderHtmlBuilder renderMarkuprenderMarkupToByteStringIOrenderHtmlToByteStringIOfromChoiceStringrenderMarkupWithrenderHtmlWithrenderMarkupBuilderWithrenderHtmlBuilderWith docTypeHtmlaabbracronymaddressbbdobig blockquotebodybuttoncaptioncitecodecolgroupdddeldfndivdldtemfieldsetformh1h2h3h4h5h6headhtmliinskbdlabellegendlimapnoscriptobjectoloptgroupoptionppreqsampscriptselectsmallspanstrongstylesubsuptabletbodytdtextareatfootththeadtitletrttulvarappletcenterdirfontiframeisindexmenunoframessuframesetdocTypeareabrcolhrlinkimginputmetaparambasefontframearticleasideaudiocanvascommanddatalistdetails figcaptionfigurefooterheaderhgroupmainmarkmeternavoutputprogressrprtrubysectionsummarytimevideoembedkeygenmenuitemsourcetrackwbr)blaze-html-0.8.1.2-EQcMcRytfAYLVlu6sIj0XGText.Blaze.XHtml5.Attributesxmlnswrapwidthvalueusemaptype_targettabindexsubjectstepstartsrcdocsrc spellchecksizessizeshapeselectedseamlessscopedscopesandboxrowspanrowsreversedrequiredrelreadonly radiogrouppubdatepreload placeholderpingpatternoptimumopen onwaitingonvolumechangeonunloadonundo ontimeupdate onsuspendonsubmit onstorage onstalledonselect onseekingonseekedonscrollonresizeonredoonreadystatechange onratechange onpropstate onprogress onplayingonplayonpause onpageshow onpagehideononline onmousewheel onmouseup onmouseover onmouseout onmousemove onmousedown onmessage onloadstartonloadedmetadata onloadeddataonloadonkeyup onkeydown oninvalidoninput onhaschange onforminput onformchangeonfocusonerroronended onemptiedondurationchangeondrop ondragstart ondragover ondragleave ondragenter ondragendondrag ondblclick oncontextmenuonclickonchangeoncanplaythrough oncanplayonblur onbeforeprintonbeforeonload novalidatenamemultipleminmethodmedia maxlengthmaxmanifestlowlooplistlangkeytypeitemtype itemscopeitempropitemismapidicon httpEquivhreflanghrefhighhiddenheightheaders formtargetformnovalidate formmethod formenctype formactionforenctype draggabledisableddeferdatetimedata_coordscontrols contextmenucontenteditablecontentcolspancolsclass_checkedcharset challengeautoplay autofocus autocompleteasyncaltaction accesskey acceptCharsetaccept)Text.Blaze.XHtml1.Transitional.Attributesvspace valuetypevalignstandbyschemerulesrevprofileonreset onkeypressonabortnowrapnoshadenohreflanguagehspacedeclarecompactcodetypecodebaseclearclassidcharoffchar cellspacing cellpaddingborderbgcolor backgroundaxisarchivealign#Text.Blaze.XHtml1.Strict.Attributes%Text.Blaze.XHtml1.FrameSet.Attributes scrolling frameborderText.Blaze.Html5.Attributes(Text.Blaze.Html4.Transitional.Attributes"Text.Blaze.Html4.Strict.Attributes$Text.Blaze.Html4.FrameSet.AttributesGHC.BaseMonoidtransformers-0.5.2.0!Control.Monad.Trans.Writer.StrictWriterT mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.Writer.Classtellcensorbytestring-0.10.8.1Data.ByteString.Lazy.Internal