@@ -47,6 +47,7 @@ import Prelude
4747import Control.Monad.Reader
4848import Control.Monad.State.Strict
4949import Data.Char (isSpace, isDigit, isAsciiUpper, isAsciiLower)
50+import Data.Default
5051import Data.Text (Text)
5152import Data.List (intersperse, transpose, isInfixOf)
5253import System.FilePath (takeExtension)
@@ -76,6 +77,11 @@ data WriterState =
7677 , stIds :: Set.Set String
7778 }
7879
80+instance Default WriterState
81+ where def = WriterState { stNotes = []
82+ , stIds = Set.empty
83+ }
84+
7985evalMuse :: PandocMonad m => Muse m a -> WriterEnv -> WriterState -> m a
8086evalMuse document env st = evalStateT (runReaderT document env) st
8187
@@ -85,14 +91,11 @@ writeMuse :: PandocMonad m
8591 -> Pandoc
8692 -> m Text
8793writeMuse opts document =
88− evalMuse (pandocToMuse document) env st
89− where env = WriterEnv { envOptions = opts
90− , envTopLevel = True
91− , envInsideBlock = False
92− }
93− st = WriterState { stNotes = []
94− , stIds = Set.empty
95− }
94+ evalMuse (pandocToMuse document) env def
95+ where env = WriterEnv { envOptions = opts
96+ , envTopLevel = True
97+ , envInsideBlock = False
98+ }
9699
97100-- | Return Muse representation of document.
98101pandocToMuse :: PandocMonad m