midi-0.1.2: src/Sound/MIDI/Parser/Warning.hs
{- |
Handling of warnings.
-}
module Sound.MIDI.Parser.Warning where
import qualified Sound.MIDI.Parser.Report as Report
import qualified Control.Monad.Exception.Synchronous as Sync
import qualified Control.Monad.Writer as Writer
type T m = Writer.WriterT [Report.UserMessage] m
run :: Monad m =>
T m (Sync.Exceptional Report.UserMessage a) -> m (Report.T a)
run act =
do (exc,warns) <- Writer.runWriterT act
return $ Report.Cons warns (Sync.toEither exc)
{-
run :: Monad m =>
T m a -> m (a, [Report.UserMessage])
run = Writer.runWriterT
-}
warn :: Monad m => String -> T m ()
warn text = Writer.tell [text]