diff options
-rw-r--r-- | utils/genprimopcode/ParserM.hs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/utils/genprimopcode/ParserM.hs b/utils/genprimopcode/ParserM.hs index aaaf6ac66f..0a69db6b8f 100644 --- a/utils/genprimopcode/ParserM.hs +++ b/utils/genprimopcode/ParserM.hs @@ -16,13 +16,21 @@ module ParserM ( -- Other happyError ) where - +import Control.Applicative +import Control.Monad (ap, liftM) import Data.Word (Word8) import Data.Char (ord) -- Parser Monad newtype ParserM a = ParserM (AlexInput -> St -> Either String (AlexInput, St, a)) +instance Functor ParserM where + fmap = liftM + +instance Applicative ParserM where + pure = return + (<*>) = ap + instance Monad ParserM where ParserM m >>= k = ParserM $ \i s -> case m i s of Right (i', s', x) -> |