)|Q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP  7The Stringable class should be instantiated with care. B Generally, the provided instances should be enough for anything.  Defaults to / mconcatMap m k = foldr (mappend . k) mempty m   Defaults to  (mconcat .) . intersperse   Defaults to ) mlabel x y = smconcat [x, stFromString [, y, stFromString ]]  ,Just mempty. Here to avoid orphan instances -Just mappend. Here to avoid orphan instances -Just mconcat. Here to avoid orphan instances LThe StringTemplateShows class should be instantiated for all types that are  directly displayed in a StringTemplate, but take an optional format string. Each such type must have an appropriate ToSElem method defined as well.  Defaults to Q.  Defaults to   _ a -> stringTemplateShow a  CThe ToSElem class should be instantiated for all types that can be / inserted as attributes into a StringTemplate. ;This method should be used to create ToSElem instances for 2 types defining a custom formatted show function.            ReSTUV !"#$%&A String with "holes"/ in it. StringTemplates may be composed of any  $ type, which at the moment includes Ws,  ByteStrings,  PrettyPrinter Docs, and XY Ws, which are actually of type  ZA. When a StringTemplate is composed of a type, its internals are  as well, so it is, so to speak "turtles all the way down." '()*++A function that generates StringTemplates. . This is conceptually a query function into a "group" of StringTemplates. [\]^_`,-&Renders a StringTemplate to a String. .Renders a StringTemplate to a Text.PrettyPrint.HughesPJ.Doc. /:Generic render function for a StringTemplate of any type. a0]Returns a tuple of three Maybes. The first is set if there is a parse error in the template. g The next is set to a list of attributes that have not been set, or Nothing if all attributes are set. | The last is set to a list of invoked templates that cannot be looked up, or Nothing if all invoked templates can be found.  Note that this check is shallow -- i.e. missing attributes and templates are only caught in the top level template, not any invoked subtemplate. 12Parses a String to produce a StringTemplate, with '$'s as delimiters. J It is constructed with a stub group that cannot look up other templates. 2JParses a String to produce a StringTemplate, delimited by angle brackets. J It is constructed with a stub group that cannot look up other templates. 3<Yields a StringTemplate with the appropriate attribute set. < If the attribute already exists, it is appended to a list. 4=Yields a StringTemplate with the appropriate attributes set. < If any attribute already exists, it is appended to a list. 5<Yields a StringTemplate with the appropriate attribute set. < If the attribute already exists, it is appended to a list. @ This will not translate the attribute through any intermediate 9 representation, so is more efficient when, e.g. setting A attributes that are large bytestrings in a bytestring template. 6=Yields a StringTemplate with the appropriate attributes set. < If any attribute already exists, it is appended to a list. 2 Attributes are added natively, which may provide  efficiency gains. 77Replaces the attributes of a StringTemplate with those B described in the second argument. If the argument does not yield A a set of named attributes but only a single one, that attribute  is named, as a default, "it". 8BQueries an String Template Group and returns Just the appropriate 2 StringTemplate if it exists, otherwise, Nothing. 9As with 8+ but never inlined, so appropriate for use  with volatile template groups. :2Adds a set of global options to a single template ;<Sets an encoding function of a template that all values are 8 rendered with. For example one useful encoder would be Text.Html.stringToHtmlString5. All attributes will be encoded once and only once. <QA special template that simply dumps the values of all the attributes set in it. U This may be made available to any template as a function by adding it to its group.  I.e. = myNewGroup = addSuperGroup myGroup $ groupStringTemplates [( dumpAttribs, dumpAttribs)]  =bcdefghi>jklmn?)Gets all quasiquoted names, normal names &% templates used in a given template. D Must be passed a pair of chars denoting the delimeters to be used. op:Generic render function for a StringTemplate of any type. @Returns a tuple of three lists. The first is of templates with parse errors, and their erros. The next is of missing attributes, and the last is of missing templates. If there are no errors, then all lists will be empty. qrstuvwxyz{|}~=if p is true, stmpl can fail gracefully, false it dies hard. @ Set to false at the top level, and true within if expressions. 2  !"#$%&'()*+,-./0123456789:;<=>?@2&'()* + =-./128934567:;, !"#$%><0@?! !"#$%!"#$%&'()*'()*+,-./0123456789:;<=>?@portable experimentals.clover@gmail.comAAAABJGiven a list of named of StringTemplates, returns a group which generates + them such that they can call one another. CJGiven a path, returns a group which generates all files in said directory  which have the proper "st" extension. L This function is strict, with all files read once. As it performs file IO, * expect it to throw the usual exceptions. DJGiven a path, returns a group which generates all files in said directory  which have the proper "st" extension. G This function is lazy in the same way that readFile is lazy, with all J files read on demand, but no more than once. The list of files, however, L is generated at the time the function is called. As this performs file IO, E expect it to throw the usual exceptions. And, as it is lazy, expect ( these exceptions in unexpected places. EAs with C9, but traverses subdirectories as well. A template named  "foo#bar.st\" may be referenced by \"foobar" in the returned group. FSee documentation for E. GGAdds a supergroup to any StringTemplate group such that templates from K the original group are now able to call ones from the supergroup as well. HAdds a "subgroup"6 to any StringTemplate group such that templates from , the original group now have template calls "shadowed" by the subgroup. IEMerges two groups into a single group. This function is left-biased, C prefering bindings from the first group when there is a conflict. J(Adds a set of global options to a group K9Sets an encoding function of a group that all values are ) rendered with in each enclosed template LDFor any requested template, returns a message that the template was K unable to be found. Useful to add as a super group for a set of templates ) under development, to aid in debugging. MKGiven an integral amount of seconds and a path, returns a group generating @ all files in said directory and subdirectories with the proper "st" extension, 2 cached for that amount of seconds. IO errors are " swallowed" by this so  that exceptions don't arise in unexpected places. N This violates referential transparency, but can be very useful in developing L templates for any sort of server application. It should be swapped out for N production purposes. The dumpAttribs template is added to the returned group O by default, as it should prove useful for debugging and developing templates. BCDEFGHIJKLM BCDEFGHIJKLMNOPNOPNOOP portable experimentals.clover@gmail.com3 &+-./0123456789:;<@BCDEFGHIJKLMNOP3&+  NO1289-./<0@3P4567:J;KBGHICMEFDL     !"#$%%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_X`aXbcXbcXYdefghijklmnopqrstuvwxyz{|}~f   HStringTemplate-0.6.5Text.StringTemplateText.StringTemplate.ClassesText.StringTemplate.BaseText.StringTemplate.QQText.StringTemplate.InstancesText.StringTemplate.GroupText.StringTemplate.Renderf#Text.StringTemplate.GenericStandard$Text.StringTemplate.GenericWithClass Stringable stFromStringstFromByteString stToString mconcatMap mintercalatemlabelsmemptysmappendsmconcatSTShowStringTemplateShowsstringTemplateShowstringTemplateFormattedShowToSElemtoSElem toSElemListSElemSNullSNATSBLELISMSTSHBSSTRSMapStFirst stGetFirst stShowsToSESEnvsmpsoptssgensencStringTemplateSTMPsenvrunSTMPchkSTMPSTGroup paddedTranstoStringtoPPDocrender checkTemplatenewSTMP newAngleSTMP setAttribute setManyAttribsetNativeAttributesetManyNativeAttrib withContextgetStringTemplategetStringTemplate' optInsertTmpl setEncoder dumpAttribsinSGen parseSTMPparseSTMPNamescheckTemplateDeepstmpgroupStringTemplatesdirectoryGroupdirectoryGroupLazydirectoryGroupRecursivedirectoryGroupRecursiveLazy addSuperGroup addSubGroup mergeSTGroupsoptInsertGroupsetEncoderGroup nullGroupunsafeVolatileDirectoryGroupSETyperenderf|=baseGHC.Showshowt2map TmplException ParseErrorNoTmplNoAttribGHC.BaseString Data.MonoidEndoShowS TmplParser<$$>|..>>fromManyswingnullEnv envLookupEx envInsert envInsApp optLookup optInsertnullOptstLookup mergeSEnvsdropTrailingBrgetSepstellNametellQQtellTmplchkStmp renderErr mconcatMap'showValshowStrjustSTRstshowstfshowaroundspacedwordcomlistprops escapedChar escapedStrmyConcatstmplsubStmpcommentblankoptExproptLinegetPropifIsSetifstat elseifstatelsestat endifstatexprn seqTmpls'seqTmplssubexprn braceConcatliteralattribfunctnmkIndexix0cycleApppluslenliTransiterAppanonTmpl regTemplate quoteTmplPat quoteTmplExp readFile'groupFromFilesgetTmplsRecursivegToSElemstripInitUnderToSElemDtoSElemDstripInitialUnderscores toSElemProxygenericToSElem getFields