!E[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZSafeP_[\]^_`abTypes and conversions(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXSafeP_cdNone =>?@AMP_ gmustache"A compiled Template with metadata.mustache*Type of key used for retrieving data from  smustacheBA collection of templates with quick access via their hashed namesmustacheConversion class mustacheInternal value representationmustache?Representation of stateful context for the substitution processmustacheSource type for constructing smustacheA map-like structure used in  mustacheA list-like structure used in  mustache/Kinds of identifiers for Variables and sectionsmustache Basic values composing the STree"mustache#Syntax tree for a mustache template$mustache4Type of errors we may encounter during substitution.%mustache`The template contained a variable for which there was no data counterpart in the current context&mustacheUWhen substituting an implicit section the current context had an unsubstitutable type'mustache-Inverted implicit sections should never occur(mustache_The template contained a section for which there was no data counterpart in the current context)mustache_The template contained a partial for which there was no data counterpart in the current context*mustache\A complex value such as an Object or Array was directly rendered into the template (warning)+mustache(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 , is called on the result.,mustache{Searches nested scopes navigating inward. Fails if it encunters something other than an object before the key is expended.7e   !"#fg$*)('&%hijk+,lmnTypes and conversions(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNoneP_3(-mustache0Convenience function for creating Object values.<This function is supposed to be used in conjuction with the . and 0 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 0 operator..mustache"Map keys to values that provide a  instance$Recommended in conjunction with the OverloadedStrings extension./mustacheUnicode version of .0mustache"Map keys to values that provide a ToJSON instance$Recommended in conjunction with the OverloadedStrings extension.1mustacheUnicode version of 02mustache<Converts a value that can be represented as JSON to a Value.,   !"#-./01234,!"   -./012#34.8/80818+Functions for rendering mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone=?MP_SF5mustachedSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.Equivalent to substituteValue . toMustache.6mustacheSubstitutes 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.7mustachedSubstitutes all mustache defined tokens (or tags) for values found in the provided data structure.8mustacheSubstitutes 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.9mustache4Catch the results of running the inner substitution.:mustacheSubstitute an entire " rather than just a single ;mustacheMain substitution function<mustache<Converts values to Text as required by the mustache standard#$%&'()*+,56789:;<5768$%&'()*+,#;:9<4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNone$>@AP_^BmustacheThe parser monad in useCmustacheUser state for the parserDmustache$Initial configuration for the parserGmustache #Hmustache /omustache >Imustache ^Jmustache{ and }Kmustache &Lmustache =Mmustache .pmustache !qmustache .rmustache?Cannot be a letter, number or the nesting separation Character .smustacheEmpty configurationNmustache1Default configuration (delimiters = ("{{", "}}"))OmustacheCRuns the parser for a mustache template, returning the syntax tree.Pmustache*Parse using a custom initial configurationBCDEFGHIJKLMNOPOPDEFNBCGHIJKLM4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNoneP_ QmustacheOCompiles a mustache template provided by name including the mentioned partials.$The same can be done manually using t, mustacheParser and V.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.RmustacheLCompile the template with the search space set to only the current directorySmustachejCompile a mustache template providing a list of precompiled templates that do not have to be recompiled.Tmustache*Flatten a list of Templates into a single Umustache Compiles a  directly from u> without checking for missing partials. the result will be a  with an empty  cache.Vmustache<Find the names of all included partials in a mustache STree.Same as join . fmap getPartials'vmustacheFind partials in a single NodetmustachegetFile 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 w7s to be compatible with the internal Either Monad of S.WmustacheCompile 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 QuasiQuoterXmustacheCompile 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")YmustacheCompile a mustache  at compile time. Usage: {-# LANGUAGE TemplateHaskell #-} import Text.Mustache.Compile (embedSingleTemplate) foo :: Template foo = $(embedSingleTemplate "dir/file.mustache")1Partials are not supported in embedSingleTemplate QRSTUVWXY QRSUTVWXY4Basic functions for dealing with mustache templates.(c) Justus Adam, 2015BSD3dev@justus.science experimentalPOSIXNoneP_Zmustache Creates a Q which first renders the contained section and then applies the supplied function-.056789:;QRSUZQRSU5678;:9-.0Zx       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi(jklmnopqrstuvwxyz{|}~%mustache-2.3.1-6fF9YiGkmEgJ33deZG8avhText.Mustache.TypesText.Mustache.RenderText.Mustache.ParserText.Mustache.Compile Text.MustachePaths_mustacheText.Mustache.InternalText.Mustache.Internal.TypesTemplatenameastpartialsKey TemplateCache ToMustache toMustacheValueObjectArrayNumberStringLambdaBoolNullContext ctxtParents ctxtFocusPairDataIdentifier NamedDataImplicitNode TextBlockSectionInvertedSectionVariablePartialASTreeSTreeSubMSubstitutionErrorVariableNotFound!InvalidImplicitSectionContextTypeInvertedImplicitSectionSectionTargetNotFoundPartialNotFoundDirectlyRenderedValuesearch innerSearchobject~>↝~=⥱ mFromJSON askContext askPartials substitutecheckedSubstitutesubstituteValuecheckedSubstituteValuecatchSubstitute substituteASTsubstituteNodetoString$fToMustache->$fToMustache->0$fToMustache->1$fToMustache->2$fToMustache->3Parser MustacheState MustacheConf delimiters sectionBegin sectionEndinvertedSectionBegin unescape2 unescape1delimiterChangenestingSeparator defaultConfparse parseWithConfautomaticCompilelocalAutomaticCompilecompileTemplateWithCache cacheFromListcompileTemplate getPartialsmustache embedTemplateembedSingleTemplateoverTextversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameuncons escapeXMLTextlistToMustacherunSubM' tellError tellSuccessrunSubM shiftContextlistToMustache'mapInstanceHelperhashMapInstanceHelper partialBegincommentimplicitIteratorisAllowedDelimiterCharacter emptyStategetFile text-1.2.3.1Data.Text.InternalText getPartials'parsec-3.1.13.0Text.Parsec.Error ParseError