úÎWHOğ?      !"#$%&'()*+,-./0123456789:;<=>Types and conversions(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXSafe:?@AB?@?@ABTypes and conversions(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXNone3457:F"A compiled Template with metadata.*Type of key used for retrieving data from  sBA collection of templates with quick access via their hashed namesConversion class Internal value representation?Representation of stateful context for the substitution processSource type for constructing sA map-like structure used in  A list-like structure used in  /Kinds of identifiers for Variables and sections Basic values composing the STree#Syntax tree for a mustache template 0Convenience function for creating Object values.<This function is supposed to be used in conjuction with the ! and # operators.Examples ÿ data Address = Address { ... } instance Address ToJSON where ... data Person = Person { name :: String, address :: Address } instance ToMustache Person where toMustache (Person { name, address }) = object [ "name" ~> name , "address" ~= address ] $Here we can see that we can use the !- operator for values that have themselves a [ instance, or alternatively if they lack such an instance but provide an instance for the ToJSON typeclass we can use the # operator.!"Map keys to values that provide a  instance$Recommended in conjunction with the OverloadedStrings extension."Unicode version of !#"Map keys to values that provide a ToJSON instance$Recommended in conjunction with the OverloadedStrings extension.$Unicode version of #%<Converts a value that can be represented as JSON to a Value.MC DEF !"#$%GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi&  !"#$%&  !"#$%8C  DEF !"#$%GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi!"#$4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXNone47:FU&The parser monad in use'User state for the parser($Initial configuration for the parser) #* /j >+ ^,{ and }- &. =/ .k !l .m?Cannot be a letter, number or the nesting separation Character .nEmpty configuration01Default configuration (delimiters = ("{{", "}}"))1CRuns the parser for a mustache template, returning the syntax tree.2*Parse using a custom initial configuration,&opqrs'tuvwx(yz)*j+,-./klm{n0|}~12€‚ƒ„…†‡ˆ &'()*+,-./012 12(0&')*+,-./!&opqrs'tuvwx(yz)*j+,-./klm{n0|}~12€‚ƒ„…†‡ˆ+Functions for rendering mustache templates.(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXNone:3dSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.Equivalent to substituteValue . toMustache.4dSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.5(Search for a key in the current context.°The search is conducted inside out mening the current focus is searched first. If the key is not found the outer scopes are recursively searched until the key is found, then 6 is called on the result.6{Searches nested scopes navigating inward. Fails if it encunters something other than an object before the key is expended.7<Converts values to Text as required by the mustache standard34‰5Š67345673456734‰5Š674Basic functions for dealing with mustache templates.(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXNone:8OCompiles a mustache template provided by name including the mentioned partials.$The same can be done manually using >, mustacheParser and =.‚This function also ensures each partial is only compiled once even though it may be included by other partials including itself.QA reference to the included template will be found in each including templates  section.9LCompile the template with the search space set to only the current directory:jCompile a mustache template providing a list of precompiled templates that do not have to be recompiled.;*Flatten a list of Templates into a single TemplateChache< Compiles a  directly from ‹> without checking for missing partials. the result will be a  with an empty  cache.=<Find the names of all included partials in a mustache STree.Same as join . fmap getPartials'ŒFind partials in a single Node>getFile searchSpace file+ iteratively searches all directories in  searchSpace for a fileY returning it if found or raising an error if none of the directories contain the file. This trows 7s to be compatible with the internal Either Monad of :. 89:;<=Œ>89:;<=>89:<;=> 89:;<=Œ>4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015LGPL-3dev@justus.science experimentalPOSIXNoneU !#3489:<89:<34 !#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv*wxyz+{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•musta_32LeM5erCbt6DjSiSt00bOText.Mustache.TypesText.Mustache.ParserText.Mustache.RenderText.Mustache.CompileText.Mustache.Internal Text.MustacheTemplatenameastpartialsKey TemplateCache ToMustache toMustacheValueObjectArrayNumberStringLambdaBoolNullContextPairDataIdentifier NamedDataImplicitNode TextBlockSectionInvertedSectionVariablePartialSTreeobject~>â†~=⥱ mFromJSONParser MustacheState MustacheConf sectionBegin sectionEndinvertedSectionBegin unescape2 unescape1delimiterChangenestingSeparator defaultConfparse parseWithConf substitutesubstituteValuesearch innerSearchtoStringautomaticCompilelocalAutomaticCompilecompileTemplateWithCache cacheFromListcompileTemplate getPartialsgetFileuncons escapeXMLText escapeXML xmlEntitieslistToMustachemapInstanceHelperhashMapInstanceHelperlambdaInstanceHelper$fToMustache(,,,,,,,)$fToMustache(,,,,,,)$fToMustache(,,,,,)$fToMustache(,,,,)$fToMustache(,,,)$fToMustache(,,)$fToMustache(,)$fToMustacheHashSet$fToMustacheValue$fToMustache(->)$fToMustache(->)0$fToMustache(->)1$fToMustache(->)2$fToMustache(->)3$fToMustache(->)4$fToMustacheHashMap$fToMustacheHashMap0$fToMustacheHashMap1$fToMustacheMap$fToMustacheMap0$fToMustacheMap1$fToMustacheVector$fToMustache[]$fToMustacheScientific$fToMustacheText$fToMustacheText0$fToMustache()$fToMustacheBool$fToMustacheValue0$fToMustacheChar$fToMustacheInt$fToMustacheInteger$fToMustacheDouble$fToMustacheFloat $fShowValue partialBegincommentimplicitIteratorisAllowedDelimiterCharacter emptyState ParseTagRes SectionBegin SectionEndTag HandledTag sDelimiters textStackisBeginngingOfLinecurrentSectionName delimitersallowedDelimiterCharacter initStatesetIsBeginning<< endOfLine parseTextappendStringStack continueLine flushText finishFile parseLinecontinueFromTag switchOnTaggenParseTagEnd handleIndentindentBytext_BKzOMwCPkuv5n8xwLM3CQGData.Text.InternalText getPartials'parse_AqYX0bfDxT5E4cHIEfeJINText.Parsec.Error ParseErrorflattenPartials fileNotFound