transformers-base 0.2 → 0.3
raw patch · 3 files changed
+34/−34 lines, 3 filesdep ~transformers
Dependency ranges changed: transformers
Files
- src/Control/Monad/Base.hs +13/−13
- src/Control/Monad/Base/Control.hs +20/−20
- transformers-base.cabal +1/−1
src/Control/Monad/Base.hs view
@@ -28,7 +28,7 @@ import Control.Monad.Trans.Cont class (Applicative μ, Monad μ,- Applicative η, Monad η) ⇒ MonadBase μ η | μ → η where+ Applicative η, Monad η) ⇒ MonadBase η μ | μ → η where -- | Lift a computation from the base monad liftBase ∷ η α → μ α @@ -40,28 +40,28 @@ instance MonadBase (L.ST s) (L.ST s) where liftBase = id instance MonadBase (S.ST s) (S.ST s) where liftBase = id -instance MonadBase μ η ⇒ MonadBase (IdentityT μ) η where+instance MonadBase η μ ⇒ MonadBase η (IdentityT μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (MaybeT μ) η where+instance MonadBase η μ ⇒ MonadBase η (MaybeT μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (ListT μ) η where+instance MonadBase η μ ⇒ MonadBase η (ListT μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (ReaderT r μ) η where+instance MonadBase η μ ⇒ MonadBase η (ReaderT r μ) where liftBase = lift . liftBase-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (L.WriterT w μ) η where+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (L.WriterT w μ) where liftBase = lift . liftBase-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (S.WriterT w μ) η where+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (S.WriterT w μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (L.StateT s μ) η where+instance MonadBase η μ ⇒ MonadBase η (L.StateT s μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (S.StateT s μ) η where+instance MonadBase η μ ⇒ MonadBase η (S.StateT s μ) where liftBase = lift . liftBase-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (L.RWST r w s μ) η where+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (L.RWST r w s μ) where liftBase = lift . liftBase-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (S.RWST r w s μ) η where+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (S.RWST r w s μ) where liftBase = lift . liftBase-instance (Error e, MonadBase μ η) ⇒ MonadBase (ErrorT e μ) η where+instance (Error e, MonadBase η μ) ⇒ MonadBase η (ErrorT e μ) where liftBase = lift . liftBase-instance MonadBase μ η ⇒ MonadBase (ContT r μ) η where+instance MonadBase η μ ⇒ MonadBase η (ContT r μ) where liftBase = lift . liftBase
src/Control/Monad/Base/Control.hs view
@@ -28,60 +28,60 @@ import qualified Control.Monad.Trans.RWS.Strict as S import Control.Monad.Trans.Control -class MonadBase μ η ⇒ MonadBaseControl μ η | μ → η where+class MonadBase η μ ⇒ MonadBaseControl η μ | μ → η where -- | Helper for lifting control operations from the base monad. liftBaseControl ∷ (RunInBase μ η → η α) → μ α instance MonadBaseControl IO IO where liftBaseControl = idLiftControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (IdentityT μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (IdentityT μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (MaybeT μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (MaybeT μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance (Error e, MonadBaseControl μ η)- ⇒ MonadBaseControl (ErrorT e μ) η where+instance (Error e, MonadBaseControl η μ)+ ⇒ MonadBaseControl η (ErrorT e μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (ListT μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (ListT μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (ReaderT r μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (ReaderT r μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance (Monoid w, MonadBaseControl μ η)- ⇒ MonadBaseControl (L.WriterT w μ) η where+instance (Monoid w, MonadBaseControl η μ)+ ⇒ MonadBaseControl η (L.WriterT w μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance (Monoid w, MonadBaseControl μ η)- ⇒ MonadBaseControl (S.WriterT w μ) η where+instance (Monoid w, MonadBaseControl η μ)+ ⇒ MonadBaseControl η (S.WriterT w μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (L.StateT s μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (L.StateT s μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance MonadBaseControl μ η ⇒ MonadBaseControl (S.StateT s μ) η where+instance MonadBaseControl η μ ⇒ MonadBaseControl η (S.StateT s μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance (Monoid w, MonadBaseControl μ η)- ⇒ MonadBaseControl (L.RWST r w s μ) η where+instance (Monoid w, MonadBaseControl η μ)+ ⇒ MonadBaseControl η (L.RWST r w s μ) where liftBaseControl = liftLiftControlBase liftBaseControl -instance (Monoid w, MonadBaseControl μ η)- ⇒ MonadBaseControl (S.RWST r w s μ) η where+instance (Monoid w, MonadBaseControl η μ)+ ⇒ MonadBaseControl η (S.RWST r w s μ) where liftBaseControl = liftLiftControlBase liftBaseControl -controlBase ∷ MonadBaseControl μ η ⇒ (RunInBase μ η → η (μ α)) → μ α+controlBase ∷ MonadBaseControl η μ ⇒ (RunInBase μ η → η (μ α)) → μ α controlBase = join . liftBaseControl -liftBaseOp ∷ MonadBaseControl μ η+liftBaseOp ∷ MonadBaseControl η μ ⇒ ((α → η (μ β)) → η (μ γ)) → (α → μ β ) → μ γ liftBaseOp base m = controlBase $ \runInBase → base $ runInBase . m -liftBaseOp_ ∷ MonadBaseControl μ η+liftBaseOp_ ∷ MonadBaseControl η μ ⇒ (η (μ β) → η (μ γ)) → μ β → μ γ liftBaseOp_ base m = controlBase $ \runInBase → base $ runInBase m
transformers-base.cabal view
@@ -1,5 +1,5 @@ Name: transformers-base-Version: 0.2+Version: 0.3 Category: Control Stability: experimental Synopsis: Lift computations from the bottom of a transformer stack