diff options
Diffstat (limited to 'src/Output.hs')
| -rw-r--r-- | src/Output.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Output.hs b/src/Output.hs index e9ce718..293f598 100644 --- a/src/Output.hs +++ b/src/Output.hs @@ -3,6 +3,7 @@ module Output ( OutputType(..), OutputEvent(..), OutputFootnote(..), + MonadOutput(..), withOutput, outputTerminal, @@ -56,6 +57,10 @@ data OutputFootnote = OutputFootnote deriving (Eq) +class Monad m => MonadOutput m where + getOutput :: m Output + + withOutput :: [ OutputType ] -> (Output -> IO a) -> IO a withOutput types inner = do lock <- newMVar () |