packages feed

extensible-effects 1.4.1 → 1.5.0

raw patch · 5 files changed

+9/−16 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Eff.Lift: instance (MonadBase b m, Typeable1 m, SetMember ((* -> *) -> * -> *) * Lift (Lift m) r) => MonadBase b (Eff r)
- Control.Eff.Lift: instance (Typeable1 m, MonadIO m, SetMember ((* -> *) -> * -> *) * Lift (Lift m) r) => MonadIO (Eff r)
- Control.Eff.Lift: instance SetMember ((* -> *) -> * -> *) * Lift (Lift m) ((:>) * (Lift m) ())
+ Control.Eff.Lift: instance (MonadBase b m, Typeable1 m, Member (* -> *) * (Lift m) r) => MonadBase b (Eff r)
+ Control.Eff.Lift: instance (Typeable1 m, MonadIO m, Member (* -> *) * (Lift m) r) => MonadIO (Eff r)
+ Control.Eff.Lift: instance Member (* -> *) * (Lift m) r => SetMember ((* -> *) -> * -> *) * Lift (Lift m) r
- Control.Eff: class Member t r => SetMember set (t :: * -> *) r | r set -> t
+ Control.Eff: class SetMember set (t :: * -> *) r | r set -> t
- Control.Eff.Exception: liftEitherM :: (Typeable1 m, Typeable e, Member (Exc e) r, SetMember Lift (Lift m) r) => m (Either e a) -> Eff r a
+ Control.Eff.Exception: liftEitherM :: (Typeable1 m, Typeable e, Member (Exc e) r, Member (Lift m) r) => m (Either e a) -> Eff r a
- Control.Eff.Lift: lift :: (Typeable1 m, SetMember Lift (Lift m) r) => m a -> Eff r a
+ Control.Eff.Lift: lift :: (Typeable1 m, Member (Lift m) r) => m a -> Eff r a

Files

extensible-effects.cabal view
@@ -1,5 +1,5 @@ Name:                extensible-effects-Version:             1.4.1+Version:             1.5.0 Synopsis:            An Alternative to Monad Transformers Description:         This package introduces datatypes for typeclass-constrained effects,                      as an alternative to monad-transformer based (datatype-constrained)
src/Control/Eff/Exception.hs view
@@ -92,7 +92,7 @@ {-# INLINE liftEither #-}  -- | `liftEither` in a lifted Monad-liftEitherM :: (Typeable1 m, Typeable e, Member (Exc e) r, SetMember Lift (Lift m) r)+liftEitherM :: (Typeable1 m, Typeable e, Member (Exc e) r, Member (Lift m) r)             => m (Either e a)             -> Eff r a liftEitherM m = lift m >>= liftEither
src/Control/Eff/Lift.hs view
@@ -36,22 +36,22 @@                            [typeOf1 (undefined :: m ())] #endif -instance SetMember Lift (Lift m) (Lift m :> ())+instance Member (Lift m) r => SetMember Lift (Lift m) r  instance Functor (Lift m) where     fmap f (Lift m k) = Lift m (f . k)     {-# INLINE fmap #-} -instance (Typeable1 m, MonadIO m, SetMember Lift (Lift m) r) => MonadIO (Eff r) where-    liftIO = lift . liftIO+instance (Typeable1 m, MonadIO m, Member (Lift m) r) => MonadIO (Eff r) where+    liftIO = (lift :: m a -> Eff r a) . liftIO     {-# INLINE liftIO #-} -instance (MonadBase b m, Typeable1 m, SetMember Lift (Lift m) r) => MonadBase b (Eff r) where-    liftBase = lift . liftBase+instance (MonadBase b m, Typeable1 m, Member (Lift m) r) => MonadBase b (Eff r) where+    liftBase = (lift :: m a -> Eff r a) . liftBase     {-# INLINE liftBase #-}  -- | Lift a Monad to an Effect.-lift :: (Typeable1 m, SetMember Lift (Lift m) r) => m a -> Eff r a+lift :: (Typeable1 m, Member (Lift m) r) => m a -> Eff r a lift m = send (inj . Lift m)  -- | The handler of Lift requests. It is meant to be terminal:
src/Data/OpenUnion1.hs view
@@ -75,7 +75,7 @@ -- > -- > -- Only allow a single unique Lift effect, by making a "Lift" set. -- > instance Member (Lift m) r => SetMember Lift (Lift m) r-class Member t r => SetMember set (t :: * -> *) r | r set -> t+class SetMember set (t :: * -> *) r | r set -> t instance SetMember set t r => SetMember set t (t' :> r)  {-# INLINE inj #-}
test/Test.hs view
@@ -147,13 +147,6 @@         return 5    in assertEqual "Fail should stop writing" 6 ret --- | Ensure that https://github.com/RobotGymnast/extensible-effects/issues/11 stays resolved.-testLift :: Assertion-testLift = runLift possiblyAmbiguous-  where-    possiblyAmbiguous :: (Typeable1 m, Monad m, SetMember Lift (Lift m) r) => Eff r ()-    possiblyAmbiguous = lift $ return ()- tests =   [ testProperty "Documentation example." testDocs   , testCase "Test runReader laziness." testReaderLaziness