{-# LANGUAGE ExistentialQuantification #-}
module Web.Scotty.Exceptions (
Handler(..)
, catch
, catchAny
, catches
, catchesOptionally
, try
, tryAny
) where
import Data.Maybe (maybeToList)
import UnliftIO (MonadUnliftIO(..), catch, catchAny, catches, try, tryAny, Handler(..))
catchesOptionally :: MonadUnliftIO m =>
m a
-> Maybe (Handler m a)
-> [Handler m a]
-> m a
catchesOptionally :: forall (m :: * -> *) a.
MonadUnliftIO m =>
m a -> Maybe (Handler m a) -> [Handler m a] -> m a
catchesOptionally m a
io Maybe (Handler m a)
mh [Handler m a]
handlers = m a
io forall (m :: * -> *) a.
MonadUnliftIO m =>
m a -> [Handler m a] -> m a
`catches` (forall a. Maybe a -> [a]
maybeToList Maybe (Handler m a)
mh forall a. Semigroup a => a -> a -> a
<> [Handler m a]
handlers)