slyfox 15/06/01 20:45:45 Added: alex-3.1.4-ghc-7.10.patch Log: Port to upcoming ghc-7.10. (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 611FF3AA)
Revision Changes Path 1.1 dev-haskell/alex/files/alex-3.1.4-ghc-7.10.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-haskell/alex/files/alex-3.1.4-ghc-7.10.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-haskell/alex/files/alex-3.1.4-ghc-7.10.patch?rev=1.1&content-type=text/plain Index: alex-3.1.4-ghc-7.10.patch =================================================================== 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
