mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
GF.Inra.UseIO: add instance Functor IOE, add method fail to instance Monad IOE
This commit is contained in:
@@ -137,11 +137,14 @@ ioeIO io = ioe (io >>= return . return)
|
|||||||
ioeErr :: Err a -> IOE a
|
ioeErr :: Err a -> IOE a
|
||||||
ioeErr = ioe . return
|
ioeErr = ioe . return
|
||||||
|
|
||||||
|
instance Functor IOE where fmap = liftM
|
||||||
|
|
||||||
instance Monad IOE where
|
instance Monad IOE where
|
||||||
return a = ioe (return (return a))
|
return a = ioe (return (return a))
|
||||||
IOE c >>= f = IOE $ do
|
IOE c >>= f = IOE $ do
|
||||||
x <- c -- Err a
|
x <- c -- Err a
|
||||||
appIOE $ err ioeBad f x -- f :: a -> IOE a
|
appIOE $ err ioeBad f x -- f :: a -> IOE a
|
||||||
|
fail = ioeBad
|
||||||
|
|
||||||
ioeBad :: String -> IOE a
|
ioeBad :: String -> IOE a
|
||||||
ioeBad = ioe . return . Bad
|
ioeBad = ioe . return . Bad
|
||||||
|
|||||||
Reference in New Issue
Block a user