}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Types and conversions(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXSafeTypes and conversions(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone9:;<=L"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.W  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNWXY'   !"#$%&(  !"#$%&B   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNWXY"8#8$8%84Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone#:<=L[ZThe parser monad in use[User state for the parser\$Initial configuration for the parser_ #` / >a ^b{ and }c &d =e . ! .?Cannot be a letter, number or the nesting separation Character .Empty configurationf1Default configuration (delimiters = ("{{", "}}"))gCRuns the parser for a mustache template, returning the syntax tree.h*Parse using a custom initial configuration,Z[\]^_`abcdefghZ[\]^_`abcdefghgh\]^fZ[_`abcde!Z[\]^_`abcdefgh+Functions for rendering mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNonei4Type of errors we may encounter during substitution.j`The template contained a variable for which there was no data counterpart in the current contextkUWhen substituting an implicit section the current context had an unsubstitutable typel-Inverted implicit sections should never occurm_The template contained a section for which there was no data counterpart in the current contextn_The template contained a partial for which there was no data counterpart in the current contexto\A complex value such as an Object or Array was directly rendered into the template (warning)pdSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.Equivalent to substituteValue . toMustache.qSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure and report any errors and warnings encountered during substitution.This function always produces results, as in a fully substituted/rendered template, it never halts on errors. It simply reports them in the first part of the tuple. Sites with errors are usually substituted with empty string.The second value in the tuple is a template rendered with errors ignored. Therefore if you must enforce that there were no errors during substitution you must check that the error list in the first tuple value is empty.Equivalent to #checkedSubstituteValue . toMustache.rdSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.sSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure and report any errors and warnings encountered during substitution.This function always produces results, as in a fully substituted/rendered template, it never halts on errors. It simply reports them in the first part of the tuple. Sites with errors are usually substituted with empty string.The second value in the tuple is a template rendered with errors ignored. Therefore if you must enforce that there were no errors during substitution you must check that the error list in the first tuple value is empty.t(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 u is called on the result.u{Searches nested scopes navigating inward. Fails if it encunters something other than an object before the key is expended.v<Converts values to Text as required by the mustache standardijklmnopqrstuvijklmnopqrstuvprqsijklmnotuvijklmnopqrstuv4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone xOCompiles 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.yLCompile the template with the search space set to only the current directoryzjCompile 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 z.Compile a mustache  at compile time. Usage: {-# LANGUAGE QuasiQuotes #-} import Text.Mustache.Compile (mustache) foo :: Template foo = [mustache|This is my inline {{ template }} created at compile time|]-Partials are not supported in the QuasiQuoterCompile a mustache B at compile time providing a search space for any partials. Usage: {-# LANGUAGE TemplateHaskell #-} import Text.Mustache.Compile (embedTemplate) foo :: Template foo = $(embedTemplate ["dir", "dir/partials"] "file.mustache")Compile a mustache  at compile time. Usage: {-# LANGUAGE TemplateHaskell #-} import Text.Mustache.Compile (embedTemplate) foo :: Template foo = $(embedTemplate "dir/file.mustache")1Partials are not supported in embedSingleTemplatexyz{|}~ xyz{|}~ xyz|{}~xyz{|}~4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone[!"$pqrsxyz|xyz|pqrs!"$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~^%mustache-2.1.2-5vbxXhJeinjAv5tCjHHIroText.Mustache.TypesText.Mustache.ParserText.Mustache.RenderText.Mustache.CompileText.Mustache.Internal Text.MustacheTemplatenameastpartialsKey TemplateCache ToMustache toMustacheValueObjectArrayNumberStringLambdaBoolNullContextPairDataIdentifier NamedDataImplicitNode TextBlockSectionInvertedSectionVariablePartialASTreeSTreeobject~>↝~=⥱ mFromJSON $fLiftText $fLiftHashMap$fToMustache(,,,,,,,)$fToMustache(,,,,,,)$fToMustache(,,,,,)$fToMustache(,,,,)$fToMustache(,,,)$fToMustache(,,)$fToMustache(,)$fToMustacheSet$fToMustacheHashSet$fToMustacheValue$fToMustache(->)$fToMustache(->)0$fToMustache(->)1$fToMustache(->)2$fToMustache(->)3$fToMustache(->)4$fToMustacheHashMap$fToMustacheHashMap0$fToMustacheHashMap1$fToMustacheMap$fToMustacheMap0$fToMustacheMap1$fToMustacheVector$fToMustacheSeq$fToMustache[]$fToMustacheScientific$fToMustacheText$fToMustacheText0$fToMustacheMaybe$fToMustache()$fToMustacheBool$fToMustacheValue0$fToMustacheChar$fToMustacheInt$fToMustacheInteger$fToMustacheDouble$fToMustacheFloat $fShowValue $fEqContext $fShowContext $fOrdContext$fShowDataIdentifier$fEqDataIdentifier $fShowNode$fEqNode$fShowTemplate$fLiftDataIdentifier $fLiftNode$fLiftTemplateParser MustacheState MustacheConf delimiters sectionBegin sectionEndinvertedSectionBegin unescape2 unescape1delimiterChangenestingSeparator defaultConfparse parseWithConfSubstitutionErrorVariableNotFound!InvalidImplicitSectionContextTypeInvertedImplicitSectionSectionTargetNotFoundPartialNotFoundDirectlyRenderedValue substitutecheckedSubstitutesubstituteValuecheckedSubstituteValuesearch innerSearchtoString$fShowSubstitutionErrorautomaticCompilelocalAutomaticCompilecompileTemplateWithCache cacheFromListcompileTemplate getPartialsgetFilemustache embedTemplateembedSingleTemplateuncons escapeXMLText escapeXML xmlEntitieslistToMustachelistToMustache'mapInstanceHelperhashMapInstanceHelperlambdaInstanceHelper partialBegincommentimplicitIteratorisAllowedDelimiterCharacter emptyState ParseTagRes SectionBegin SectionEndTag HandledTag sDelimiters textStackisBeginngingOfLinecurrentSectionNameallowedDelimiterCharacter initStatesetIsBeginning<< endOfLine parseTextappendStringStack continueLine flushText finishFile parseLinecontinueFromTag switchOnTaggenParseTagEnd Substitution tellError tellSuccesssubstituteASTWithValAndCache showValueType handleIndentindentBy#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText getPartials'$parsec-3.1.11-37j7M1YEHqtEooY7BpJdriText.Parsec.Error ParseErrorflattenPartials fileAndLinecompileTemplateTHaddDependentRelativeFile fileNotFound