@@ -16,7 +16,8 @@ import Control.Exception
1616import Control.Monad
1717import Control.Monad.Catch (MonadThrow, MonadCatch)
1818import Data.Foldable (toList)
19−import Data.Semigroup (Semigroup (..))
19+import Data.Functor.Alt (Alt (..))
20+import Data.Semigroup ((<>))
2021
2122import Control.Monad.Error.Class (MonadError(..))
2223import Control.Monad.Trans.Except
@@ -216,8 +217,8 @@ instance MonadBaseControl IO ClientM where
216217 restoreM st = ClientM (restoreM st)
217218
218219-- | Try clients in order, last error is preserved.
219−instance Semigroup (ClientM a) where
220− a <> b = a `catchError` \_ -> b
220+instance Alt ClientM where
221+ a <!> b = a `catchError` \_ -> b
221222
222223runClientM :: ClientM a -> ClientEnv -> IO (Either ServantError a)
223224runClientM cm env = runExceptT $ (flip runReaderT env) $ runClientM' cm