git.iko.soy/typeable/servant
on master help sign in
Change Semigroup (ClientM a) to Alt ClientM
6fafaecOleg Grenrus
servant-client/servant-client.cabal+1
@@ -52,6 +52,7 @@ library
52 , monad-control >= 1.0.0.4 && < 1.1
52 , monad-control >= 1.0.0.4 && < 1.1
53 , network-uri >= 2.6 && < 2.7
53 , network-uri >= 2.6 && < 2.7
54 , safe >= 0.3.9 && < 0.4
54 , safe >= 0.3.9 && < 0.4
55+ , semigroupoids >= 4.3 && < 5.2
55 , servant == 0.9.*
56 , servant == 0.9.*
56 , string-conversions >= 0.3 && < 0.5
57 , string-conversions >= 0.3 && < 0.5
57 , text >= 1.2 && < 1.3
58 , text >= 1.2 && < 1.3
servant-client/src/Servant/Common/Req.hs+4−3
@@ -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 ((<>))
20
21
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)
217
218
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
221
222
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