úÎBã@k     &Escape function (,  etc.) <Directory for search partial templates ({{> templateName}}) !Partial template files extension  Data for Hastache variable Variable name Value #Convert String to UTF-8 Bytestring (Convert String to UTF-8 Lazy Bytestring #Convert UTF-8 Bytestring to String (Convert UTF-8 Lazy Bytestring to String Escape HTML symbols  No escape <Default config: HTML escape function, current directory as @ template directory, template file extension not specified  !"#$%&')Render Hastache template from ByteString Configuration  Template Context #Render Hastache template from file Configuration Template file name Context )Render Hastache template from ByteString Configuration  Template Context #Render Hastache template from file Configuration Template file name Context        ()*+,5Make Hastache context from String -> MuType function 3Make Hastache context from Data.Data deriving type   #data InternalData = InternalData {  someField :: String,  anotherField :: Int & } deriving (Data, Typeable, Show)  data Example = Example { ' stringField :: String, $ intField :: Int, - dataField :: InternalData, & simpleListField :: [String], , dataListField :: [InternalData], 1 stringFunc :: String -> String, Y byteStringFunc :: Data.ByteString.ByteString -> Data.ByteString.ByteString, 4 monadicStringFunc :: String -> IO String, [ monadicByteStringFunc :: Data.ByteString.ByteString -> IO Data.ByteString.ByteString  } deriving (Data, Typeable)  :example = hastacheStr defaultConfig (encodeStr template)  (mkGenericContext context)  where  template = concat $ map (++ "\n") [  "string: {{stringField}}",  "int: {{intField}}",  "9data: {{dataField.someField}}, {{dataField.anotherField}}",  "data: {{#,dataField}}{{someField}}, {{anotherField}}{{/ dataField}}",  "simple list: {{#simpleListField}}{{.}} {{/simpleListField}}",  " data list:",  "{{#dataListField}}",  "? * {{someField}}, {{anotherField}}. top level var: {{intField}}",  "{{/dataListField}}",  "{{#stringFunc}}upper{{/ stringFunc}}",  "{{#byteStringFunc}}reverse{{/byteStringFunc}}",  "{{#$monadicStringFunc}}upper (monadic){{/monadicStringFunc}}",  "{{#*monadicByteStringFunc}}reverse (monadic){{/monadicByteStringFunc}}"] & context = Example { stringField = " string value", intField = 1, ! dataField = InternalData "val" 123, simpleListField = ["a","b","c"], & dataListField = [InternalData "aaa" 1, InternalData "bbb" 2], , stringFunc = map Data.Char.toUpper, 2 byteStringFunc = Data.ByteString.reverse, < monadicStringFunc = return . map Data.Char.toUpper, C monadicByteStringFunc = return . Data.ByteString.reverse }  1main = example >>= Data.ByteString.Lazy.putStrLn Result:   string: string value int: 1 data: val, 123 data: val, 123 simple list: a b c  data list:  * aaa, 1. top level var: 1  * bbb, 2. top level var: 1 UPPER  esrever UPPER (MONADIC) )cidanom( esrever Supported field types:  String  Char  Double  Float  Int  Int8  Int16  Int32  Int64  Integer  Word  Word8  Word16  Word32  Word64  Data.ByteString.ByteString ! Data.ByteString.Lazy.ByteString  Data.Text.Text  Data.Text.Lazy.Text  Bool : Data.ByteString.ByteString -> Data.ByteString.ByteString  String -> String ? Data.ByteString.ByteString -> Data.ByteString.Lazy.ByteString I MonadIO m => Data.ByteString.ByteString -> m Data.ByteString.ByteString ! MonadIO m => String -> m String N MonadIO m => Data.ByteString.ByteString -> m Data.ByteString.Lazy.ByteString -./0      !"#$%&'()*+,-./012hastache-0.2.2 Text.HastacheText.Hastache.ContextMuConfig muEscapeFuncmuTemplateFileDirmuTemplateFileExtMuType MuNothing MuLambdaMMuLambdaMuBoolMuList MuVariableMuVar toLByteString MuContext encodeStr encodeStrLBS decodeStr decodeStrLBS htmlEscape emptyEscape defaultConfig hastacheStr hastacheFilehastacheStrBuilderhastacheFileBuilder mkStrContextmkGenericContext~>ord8 findBlocktoLBSfindCloseSection trimCharsTesttrimAlladdResaddResBSaddResLZ processBlock renderBlockTDTUnknownTListTObjTSimple toGenTemp procFieldconvertGenTempToContext