-----------------------------------------------------------------------------
Monad for error handling for the mangler

Pulled out so it can be shared with the attribute grammar part of the
mangler too.

(c) 1993-2001 Andy Gill, Simon Marlow
-----------------------------------------------------------------------------

> module Happy.Frontend.Mangler.Monad
>   ( ErrMsg
>   , M
>   , addErr
>   ) where

> import Control.Monad.Writer ( Writer, MonadWriter(..) )

> type ErrMsg = String
> type M a = Writer [ErrMsg] a

> addErr :: ErrMsg -> M ()
> addErr :: ErrMsg -> M ()
addErr ErrMsg
e = [ErrMsg] -> M ()
forall w (m :: * -> *). MonadWriter w m => w -> m ()
tell [ErrMsg
e]