You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-haskell/alex/files/alex-3.1.4-ghc-7.10.patch

25 lines
981 B

diff --git a/templates/wrappers.hs b/templates/wrappers.hs
index a1a1a6d..c020cc7 100644
--- a/templates/wrappers.hs
+++ b/templates/wrappers.hs
@@ -284,6 +284,19 @@ runAlex input (Alex f)
newtype Alex a = Alex { unAlex :: AlexState -> Either String (AlexState, a) }
+instance Functor Alex where
+ fmap f a = Alex $ \s -> case unAlex a s of
+ Left msg -> Left msg
+ Right (s', a') -> Right (s', f a')
+
+instance Applicative Alex where
+ pure a = Alex $ \s -> Right (s, a)
+ fa <*> a = Alex $ \s -> case unAlex fa s of
+ Left msg -> Left msg
+ Right (s', f) -> case unAlex a s' of
+ Left msg -> Left msg
+ Right (s'', b) -> Right (s'', f b)
+
instance Monad Alex where
m >>= k = Alex $ \s -> case unAlex m s of
Left msg -> Left msg