}cb~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None23459:;<=ADIOQRT` .A very simple HTML DSLMDon't use this! It's a lie!Unlike plate , this uses . That's because  over  is really quite slow.6Look for an immediate string-like term and render thataFlatten a vector of 'FastMarkup. String-like terms that are next to eachother should be combinedTag everything in a  with a numberRecursively flatten ! until doing so does nothingRun all Text buildersCompile Markup''Render !Render !) by recursively rendering any sub-markup.Render ! that has no holes.-Defer application of an argument to renderinge!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNdefghijklostuvwxyz{|}~N!"#$%&'()*+-,.3460/125789:;<=>?@ABCDEdhefgijklstuvwxyz{|}~hD>?@ABAC;<=789:./0123456+,-NMLKJEI)*H!"#$%&'(GFdefghijklooo~|}yz{vwxstu8!"#$%&'()*+,-./0123456789:;<=>?@ABACDEFGHIJKLMNdefghijklostuvwxyz{|}~)0*0None%&,2349;<=?DQRT`A Writer-like monad Compile a  . Don't run this multiple times! Compile a  . Don't run this multiple times!Same as  but lets you use the result. Sub-templateGive a node a unique id7Might be handy to build server-side react-esque systemsHTML  attribute given to  d elements.Insert text and escape itInsert text and escape itInsert text and escape itInsert text and escape itInsert text and don't escape itInsert text and don't escape itInsert text and don't escape itInsert text and don't escape it,#8NoneT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     None%&*,9;<=DIOQRT`. is a free monad based on the base functor to  'Markup\'F'Beware: this is a wacky monad. a does *not* sequence nodes together; instead, it nests them. To lay out nodes sequentially, use .Syntactic sugar supports OverloadedLabels, OverloadedStrings and OverloadedLists.OverloadedStrings ("foo" :: Markup n a) =  "foo"OverloadedLists ([a,b,c] :: Markup n a) =  [a,b,c]OverloadedLabelsThe 0 instances give a convenient way to write nodes.Nodes without attributes  (#foo ::  n a) =  "foo" []Nodes with attributes   #foo [a,b,c] =  "foo" [a,b,c] For use with OverloadedLabels.   #x [a,b,c] =  "x" [a,b,c] Compile a Html for use with  and its friends. See also: .!Make a node with some attributes.Insert text and escape itInsert text and escape itInsert text and escape itInsert text and escape itInsert text and don't escape itInsert a dynamic value.BFor each element of a list of branches, generate sequential markup6For each element of a list, generate sequential markupEmpty node. Terminates  to this pointInsert a sub-template.Insert a sub-template.(!>?@ABC)!>?@ABACNoneO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !)*>?@ABC~>?@ABAC!~)* Safe                     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !" #$ %& '( #) #* #+ #, -. -/01234567889:;<=>?@9"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ % % % % % ' # # #    &nice-html-0.2.0-9hdKwZGWKjl7haitfI8JTxText.Html.Nice.Writer.Html5Text.Html.Nice.FreeMonadText.Html.NiceText.Html.Nice.InternalText.Html.Nice.WriterPaths_nice_htmla_abbr_address_article_aside_audio_b_bdo_ blockquote_body_button_canvas_caption_cite_code_ colgroup_command_ datalist_dd_del_details_dfn_div_dl_dt_em_ fieldset_ figcaption_figure_footer_form_h1_h2_h3_h4_h5_h6_head_header_hgroup_html_i_iframe_ins_kbd_label_legend_li_main_map_mark_menu_meter_nav_ noscript_object_ol_ optgroup_option_output_p_pre_ progress_q_rp_rt_ruby_samp_script_section_select_small_span_strong_style_sub_summary_sup_table_tbody_td_ textarea_tfoot_th_thead_time_title_tr_ul_var_video_area_base_br_col_embed_hr_img_input_keygen_link_ menuitem_meta_param_source_track_wbr_accept_accept_charset_ accesskey_action_alt_async_ autocomplete_ autofocus_ autoplay_ challenge_charset_checked_cite__class_cols_colspan_content_contenteditable_ contextmenu_ controls_coords_data_ datetime_defer_dir_ disabled_ draggable_enctype_for_form__ formaction_ formenctype_ formmethod_formnovalidate_ formtarget_headers_height_hidden_high_href_ hreflang_ http_equiv_icon_id_ismap_item_ itemprop_ itemscope_ itemtype_keytype_label__lang_list_loop_low_ manifest_max_ maxlength_media_method_min_ multiple_name_ novalidate_onbeforeonload_onbeforeprint_onblur_ oncanplay_oncanplaythrough_ onchange_oncontextmenu_onclick_ ondblclick_ondrag_ ondragend_ ondragenter_ ondragleave_ ondragover_ ondragstart_ondrop_ondurationchange_ onemptied_onended_onerror_onfocus_ onformchange_ onforminput_ onhaschange_oninput_ oninvalid_ onkeydown_onkeyup_onload_ onloadeddata_onloadedmetadata_ onloadstart_ onmessage_ onmousedown_ onmousemove_ onmouseout_ onmouseover_ onmouseup_ onmousewheel_ ononline_ onpagehide_ onpageshow_onpause_onplay_ onplaying_ onprogress_ onpropstate_ onratechange_onreadystatechange_onredo_ onresize_ onscroll_ onseeked_ onseeking_ onselect_ onstalled_ onstorage_ onsubmit_ onsuspend_ ontimeupdate_onundo_ onunload_onvolumechange_ onwaiting_open_optimum_pattern_ping_ placeholder_preload_pubdate_ radiogroup_ readonly_rel_ required_ reversed_rows_rowspan_sandbox_scope_scoped_ seamless_ selected_shape_size_sizes_span__ spellcheck_src_srcdoc_start_step_style__subject_ summary__ tabindex_target_title__type_usemap_value_width_wrap_xmlns_baseData.Functor.Identity runIdentityIdentity Data.VoidVoid#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.Internal.LazyTextData.Text.Internal.BuilderBuilder Data.Text.Lazy.Builder.RealFloat realFloatData.Text.Lazy.Builder.Intdecimal toLazyText fromLazyText fromStringfromTextData.Text.Lazy fromStricttoStrict FastMarkupBunchFStreamFLTextFSTextFBuilderFHoleFEmpty:$StreamListSSMarkup'DoctypeNodeVoidNodeListHoleEmptySomeTextLazyTBuilderTStrictT IsEscapedDoEscape Don'tEscapeAttr:=:-attrKeyattrVal attrValHoleAttrNameunstream$fNFDataFastMarkup$fMonoidFastMarkup$fShow:$$fTraversableStream$fNFDataStream$fFoldableStream$fFunctorStream $fEqStream $fShowStream $fShowAttr$fEqAttr $fFunctorAttr$fFoldableAttr$fTraversableAttr$fShowIsEscaped $fEqIsEscaped$fShowSomeText $fEqSomeText$fShowFastMarkup$fEqFastMarkup$fFunctorFastMarkup$fFoldableFastMarkup$fTraversableFastMarkup$fGenericFastMarkup $fFunctor:$ $fShowMarkup' $fEqMarkup'$fFunctorMarkup'$fFoldableMarkup'$fTraversableMarkup'Markup'FDoctypeFNodeF VoidNodeFListFStreamFTextFHoleFEmptyF$fCorecursiveMarkup'$fRecursiveMarkup'D:R:BaseMarkup'$fFunctorMarkup'F$fFoldableMarkup'F$fTraversableMarkup'F AsRealFloat asRealFloatAsHexasHex AsDecimal asDecimal ToFastMarkup toFastMarkupRenderrEqHackplateFM compileAttrs escapeTextescapetoTextfastAttrfastimmediateRendermuncheqHackflatten strictifycompile_ recompilerenderMrenderMsrender$fToFastMarkupAsRealFloat$fToFastMarkupAsHex$fToFastMarkupAsDecimal$fToFastMarkupBuilder$fToFastMarkupText$fToFastMarkupText0$fRenderFastMarkupm$fRenderBuilderm $fRenderVoidm $fRender:$m$fRender(->)m' $fEqEqHack$fBifunctorMarkup'FNotenoteIdnotedAddAttrMarkupcompile runMarkup makeElementmakeVoidElementdoctype_usingdynamic dynamicRaw!streamsubnotetextlazyTextbuilderstringtextRaw lazyTextRaw builderRaw stringRaw$fAddAttrMarkupt$fAddAttr(->)t$fIsStringMarkup $fMonadMarkup$fApplicativeMarkup$fFunctorMarkup$fFunctorMarkupStep$fFoldableMarkupStep$fTraversableMarkupStep$fEqNote $fShowNote $fFunctorNoteattrnodeunescapeholebranchnodesemptyembeddoctype$fBifunctorMarkup$fIsLabelsMakeNode$fIsLabelsMarkup$fIsListMarkup$fMonoidMarkup$fDefaultMarkup$fMonadFreeMarkupGHC.BaseMonadData.Traversabletraverse&vector-0.12.0.1-BtK5bVORdhu8bC6gqUfFYi Data.VectorVector TraversableniceIdidaddAttr MarkupLike MarkupStep msGlobalId msChildrenmsResultChildrenrunMlift>>GHC.OverloadedLabelsIsLabelMakeNodeNunMarkupformatRealFloatFPFormatGenericFixedExponent hexadecimalflushtoLazyTextWith singletoncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName