@@ -16,7 +16,8 @@ import Control.Exception
16import Control.Monad
16import Control.Monad
17import Control.Monad.Catch (MonadThrow, MonadCatch)
17import Control.Monad.Catch (MonadThrow, MonadCatch)
18import Data.Foldable (toList)
18import Data.Foldable (toList)
19−import Data.Semigroup (Semigroup (..))
19+import Data.Functor.Alt (Alt (..))
20+import Data.Semigroup ((<>))
21import Control.Monad.Error.Class (MonadError(..))
22import Control.Monad.Error.Class (MonadError(..))
22import Control.Monad.Trans.Except
23import Control.Monad.Trans.Except
@@ -216,8 +217,8 @@ instance MonadBaseControl IO ClientM where
216 restoreM st = ClientM (restoreM st)
217 restoreM st = ClientM (restoreM st)
218-- | Try clients in order, last error is preserved.
219-- | Try clients in order, last error is preserved.
219−instance Semigroup (ClientM a) where
220+instance Alt ClientM where
220− a <> b = a `catchError` \_ -> b
221+ a <!> b = a `catchError` \_ -> b
222runClientM :: ClientM a -> ClientEnv -> IO (Either ServantError a)
223runClientM :: ClientM a -> ClientEnv -> IO (Either ServantError a)
223runClientM cm env = runExceptT $ (flip runReaderT env) $ runClientM' cm
224runClientM cm env = runExceptT $ (flip runReaderT env) $ runClientM' cm