@@ -120,15 +120,22 @@ instance Binary TemplateExpr where
120120
121121--------------------------------------------------------------------------------
122122readTemplate :: String -> Template
123−readTemplate input = case P.parse template "" input of
123+readTemplate input = case P.parse topLevelTemplate "" input of
124124 Left err -> error $ "Cannot parse template: " ++ show err
125125 Right t -> t
126126
127+--------------------------------------------------------------------------------
128+topLevelTemplate :: P.Parser Template
129+topLevelTemplate = Template <$>
130+ P.manyTill templateElement P.eof
127131
128132--------------------------------------------------------------------------------
129133template :: P.Parser Template
130−template = Template <$>
131− (P.many $ chunk <|> escaped <|> conditional <|> for <|> partial <|> expr)
134+template = Template <$> P.many templateElement
135+
136+--------------------------------------------------------------------------------
137+templateElement :: P.Parser TemplateElement
138+templateElement = chunk <|> escaped <|> conditional <|> for <|> partial <|> expr
132139
133140
134141--------------------------------------------------------------------------------