From 94685d184d2608ca1c0847779fdfc18e23fe760d Mon Sep 17 00:00:00 2001 From: hallgren Date: Mon, 20 Feb 2012 17:26:49 +0000 Subject: [PATCH] GF.Inra.UseIO: add instance Functor IOE, add method fail to instance Monad IOE --- src/compiler/GF/Infra/UseIO.hs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/compiler/GF/Infra/UseIO.hs b/src/compiler/GF/Infra/UseIO.hs index 309b09e46..cd9fe8a95 100644 --- a/src/compiler/GF/Infra/UseIO.hs +++ b/src/compiler/GF/Infra/UseIO.hs @@ -137,11 +137,14 @@ ioeIO io = ioe (io >>= return . return) ioeErr :: Err a -> IOE a ioeErr = ioe . return +instance Functor IOE where fmap = liftM + instance Monad IOE where return a = ioe (return (return a)) IOE c >>= f = IOE $ do x <- c -- Err a appIOE $ err ioeBad f x -- f :: a -> IOE a + fail = ioeBad ioeBad :: String -> IOE a ioeBad = ioe . return . Bad