lifx-lan 0.8.1 → 0.8.2
raw patch · 2 files changed
+5/−6 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Lifx.Lan.Internal: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError (Data.Either.Either e Lifx.Lan.Internal.LifxError) (Lifx.Lan.Internal.LifxT m)
+ Lifx.Lan.Internal: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Lifx.Lan.Internal.LifxT m)
Files
- lifx-lan.cabal +1/−1
- src/Lifx/Lan/Internal.hs +4/−5
lifx-lan.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: lifx-lan-version: 0.8.1+version: 0.8.2 license: BSD-3-Clause license-file: LICENSE author: George Thomas
src/Lifx/Lan/Internal.hs view
@@ -101,11 +101,10 @@ ExceptT $ local f $ unLifx e s m instance MonadState s m => MonadState s (LifxT m) where state = lift . state-instance MonadError e m => MonadError (Either e LifxError) (LifxT m) where- throwError = either (lift . throwError @e @m) (LifxT . throwError)- catchError m h = LifxT $ StateT \s -> ReaderT \e -> ExceptT do- (m', s'') <- either ((,s) . h . Right) (first pure) <$> unLifx e s m- catchError @e @m (unLifx e s'' m') (unLifx e s'' . h . Left)+instance MonadError e m => MonadError e (LifxT m) where+ throwError = lift . throwError @e @m+ catchError m h = LifxT $ StateT \s -> ReaderT \e ->+ ExceptT $ catchError @e @m (unLifx e s m) (unLifx e s . h) unLifx :: (Socket, Word32, Int) -> Word8 -> LifxT m a -> m (Either LifxError (a, Word8)) unLifx e s = runExceptT . flip runReaderT e . flip runStateT s . (.unwrap)