some minor code cleanup

This commit is contained in:
Dennis Frieberg 2025-06-06 19:04:57 +02:00
parent 5c203e5a95
commit 72e53eea4f
Signed by: nerf
GPG key ID: 7C58AFED036072C5
3 changed files with 17 additions and 8 deletions

View file

@ -3,6 +3,8 @@ module Monad(
App
,module Control.Monad.Fail
,module Control.Monad.IO.Class
,handleE
,catchE
,throwE
,except
,runApp
@ -29,6 +31,16 @@ instance MonadFail App where
throwE :: String -> App a
throwE = App . T.throwE
catchE :: App a -> (String -> App a) -> App a
catchE a f = do
result <- liftIO $ runApp a
case result of
Left err -> f err
Right res -> return res
handleE :: (String -> App a) -> App a -> App a
handleE = flip catchE
except :: Either String a -> App a
except = App . T.except