diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-03-12 10:23:25 -0800 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-03-12 10:23:25 -0800 |
| commit | f9a4e049c5840394289db3f430bc5777a60fed8c (patch) | |
| tree | 5bb0acbbefc434570dce2476962b68c60ad71fbd /src/Text | |
| parent | 6abcde0bf77a9a2ddee08ecc2dea90ef95cdd681 (diff) | |
T.P.Readers.LaTeX.Parsing: Monoid and Semigroup instances for TokStream.
Diffstat (limited to 'src/Text')
| -rw-r--r-- | src/Text/Pandoc/Readers/LaTeX/Parsing.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX/Parsing.hs b/src/Text/Pandoc/Readers/LaTeX/Parsing.hs index 20e495c29..bf1ebbb9c 100644 --- a/src/Text/Pandoc/Readers/LaTeX/Parsing.hs +++ b/src/Text/Pandoc/Readers/LaTeX/Parsing.hs @@ -251,6 +251,14 @@ instance Default LaTeXState where data TokStream = TokStream !Bool [Tok] deriving (Show) +instance Semigroup TokStream where + (TokStream exp1 ts1) <> (TokStream exp2 ts2) = + TokStream (if null ts1 then exp2 else exp1) (ts1 <> ts2) + +instance Monoid TokStream where + mempty = TokStream False mempty + mappend = (<>) + instance Monad m => Stream TokStream m Tok where uncons (TokStream _ []) = return Nothing uncons (TokStream _ (t:ts)) = return $ Just (t, TokStream False ts) |
