@@ -302,14 +302,14 @@ anyUntilPos pos = go
302302 False -> (:) <$> anyChar <*> go
303303
304304markdown :: (String -> [a] -> IParser (String, [a])) -> IParser (String, [a])
305−markdown interpolation = try (string "[markdown|") >> closeMarkdown "" []
305+markdown interpolation = try (string "[markdown|") >> closeMarkdown (++ "") []
306306 where
307307 closeMarkdown md stuff =
308308 choice [ do try (string "|]")
309− return (md, stuff)
310− , uncurry closeMarkdown =<< interpolation md stuff
309+ return (md "", stuff)
310+ , (\(m,s) -> closeMarkdown (m ++) s) =<< interpolation (md "") stuff
311311 , do c <- anyChar
312− closeMarkdown (md ++ [c]) stuff
312+ closeMarkdown (md . ([c]++)) stuff
313313 ]
314314
315315--str :: IParser String