Strafunski-StrategyLib 5.0.0.4 → 5.0.0.5
raw patch · 5 files changed
+5/−125 lines, 5 filesdep +transformersdep ~directoryPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: transformers
Dependency ranges changed: directory
API changes (from Hackage documentation)
- Control.Monad.Maybe: MaybeT :: m (Maybe a) -> MaybeT m a
- Control.Monad.Maybe: instance [overlap ok] Monad m => Functor (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] Monad m => Monad (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] Monad m => MonadPlus (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadCont m => MonadCont (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadFix m => MonadFix (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadIO m => MonadIO (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadReader r m => MonadReader r (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadState s m => MonadState s (MaybeT m)
- Control.Monad.Maybe: instance [overlap ok] MonadTrans MaybeT
- Control.Monad.Maybe: instance [overlap ok] MonadWriter w m => MonadWriter w (MaybeT m)
- Control.Monad.Maybe: newtype MaybeT m a
- Control.Monad.Maybe: runMaybeT :: MaybeT m a -> m (Maybe a)
- Data.Generics.Strafunski.StrategyLib.MonadicFunctions: Id :: a -> Id a
- Data.Generics.Strafunski.StrategyLib.MonadicFunctions: instance [overlap ok] Monad Id
- Data.Generics.Strafunski.StrategyLib.MonadicFunctions: newtype Id a
- Data.Generics.Strafunski.StrategyLib.MonadicFunctions: unId :: Id a -> a
- Data.Generics.Strafunski.StrategyLib.Models.Deriving.StrategyPrimitives: mchoicesTP :: (Monad m, MonadPlus (t m), MonadUnTrans MaybeAlg t) => [TP (t m)] -> TP m -> TP m
+ Data.Generics.Strafunski.StrategyLib.Models.Deriving.StrategyPrimitives: mchoicesTP :: (MonadUnTrans MaybeAlg t, MonadPlus (t m), Monad m) => [TP (t m)] -> TP m -> TP m
- Data.Generics.Strafunski.StrategyLib.Models.Deriving.StrategyPrimitives: mchoicesTU :: (Monad m, MonadPlus (t m), MonadUnTrans MaybeAlg t) => [TU a (t m)] -> TU a m -> TU a m
+ Data.Generics.Strafunski.StrategyLib.Models.Deriving.StrategyPrimitives: mchoicesTU :: (MonadUnTrans MaybeAlg t, MonadPlus (t m), Monad m) => [TU a (t m)] -> TU a m -> TU a m
Files
- Control/Monad/Maybe.hs +0/−105
- Control/Monad/Run.hs +1/−1
- Data/Generics/Strafunski/StrategyLib/MonadicFunctions.hs +0/−15
- Data/Generics/Strafunski/StrategyLib/StrategyLib.hs +1/−1
- Strafunski-StrategyLib.cabal +3/−3
− Control/Monad/Maybe.hs
@@ -1,105 +0,0 @@---------------------------------------------------------------------------------- | --- Maintainer : Ralf Laemmel, Joost Visser--- Stability : experimental--- Portability : portable------ This module introduces the MaybeT monad transformer.--- It is basically a simplification of the ErrorT monad transformer.----------------------------------------------------------------------------------module Control.Monad.Maybe ( -- MaybeT(..)--) where--import Control.Monad.Fix-import Control.Monad.Trans-import Control.Monad.Reader-import Control.Monad.Writer-import Control.Monad.State-import Control.Monad.RWS-import Control.Monad.Cont-import Control.Monad.Error------------------------------------------------------------------------------------ | The monad transformer 'MaybeT'.-newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) }--instance (Monad m) => Functor (MaybeT m) where- fmap f m = MaybeT $ do- a <- runMaybeT m- case a of- Nothing -> return (Nothing)- Just r -> return (Just (f r))--instance (Monad m) => Monad (MaybeT m) where- return a = MaybeT $ return (Just a)- m >>= k = MaybeT $ do- a <- runMaybeT m- case a of- Nothing -> return (Nothing)- Just r -> runMaybeT (k r)- fail msg = MaybeT $ return (Nothing)--instance (Monad m) => MonadPlus (MaybeT m) where- mzero = MaybeT $ return (Nothing)- m `mplus` n = MaybeT $ do- a <- runMaybeT m- case a of- Nothing -> runMaybeT n- Just r -> return (Just r)--instance (MonadFix m) => MonadFix (MaybeT m) where- mfix f = MaybeT $ mfix $ \a -> runMaybeT $ f $ case a of- Just r -> r- _ -> error "empty mfix argument"--{--instance (Monad m) => MonadError e (MaybeT m) where- throwError l = MaybeT $ return (Nothing)- m `catchError` h = MaybeT $ do- a <- runMaybeT m- case a of- Nothing -> runMaybeT (h l)- Just r -> return (Just r)--}--instance MonadTrans (MaybeT) where- lift m = MaybeT $ do- a <- m- return (Just a)--instance (MonadIO m) => MonadIO (MaybeT m) where- liftIO = lift . liftIO--instance (MonadReader r m) => MonadReader r (MaybeT m) where- ask = lift ask- local f m = MaybeT $ local f (runMaybeT m)--instance (MonadWriter w m) => MonadWriter w (MaybeT m) where- tell = lift . tell- listen m = MaybeT $ do- (a, w) <- listen (runMaybeT m)- return $ case a of- Nothing -> Nothing- Just r -> Just (r, w)- pass m = MaybeT $ pass $ do- a <- runMaybeT m- return $ case a of- Nothing -> (Nothing, id)- Just (r, f) -> (Just r, f)--instance (MonadState s m) => MonadState s (MaybeT m) where- get = lift get- put = lift . put--instance (MonadCont m) => MonadCont (MaybeT m) where- callCC f = MaybeT $- callCC $ \c ->- runMaybeT (f (\a -> MaybeT $ c (Just a)))--------------------------------------------------------------------------------
Control/Monad/Run.hs view
@@ -15,10 +15,10 @@ module Control.Monad.Run where import Control.Monad.Trans+import Control.Monad.Trans.Maybe import Control.Monad.Identity import Control.Monad.State import Control.Monad.List-import Control.Monad.Maybe import Control.Monad.Error import System.IO.Unsafe (unsafePerformIO) -- for running IO monads
Data/Generics/Strafunski/StrategyLib/MonadicFunctions.hs view
@@ -16,21 +16,6 @@ import Control.Monad --------------------------------------------------------------------------------- * The identity monad ---- | Identity type constructor.-newtype Id a = Id a---- | Unwrap identity type constructor-unId :: Id a -> a-unId (Id x) = x--instance Monad Id where- return = Id- (Id x) >>= f = f x--------------------------------------------------------------------------------- -- * Recover from partiality -- | Force success. If the argument value corresponds to failure,
Data/Generics/Strafunski/StrategyLib/StrategyLib.hs view
@@ -46,8 +46,8 @@ import Control.Monad import Control.Monad.Fix import Control.Monad.Trans+import Control.Monad.Trans.Maybe import Control.Monad.Identity-import Control.Monad.Maybe import Control.Monad.State import Data.Monoid import Data.Generics.Strafunski.StrategyLib.MoreMonoids
Strafunski-StrategyLib.cabal view
@@ -1,5 +1,5 @@ name: Strafunski-StrategyLib-version: 5.0.0.4+version: 5.0.0.5 synopsis: Library for strategic programming description: This is a version of the StrategyLib library originally shipped with Strafunski, Cabalized and updated to newer versions of GHC. A description of much of StrategyLib can be found in the paper "Design Patterns for Functional Strategic Programming." license: BSD3@@ -27,7 +27,6 @@ Rank2Types exposed-modules:- Control.Monad.Maybe, Control.Monad.Run, Data.Generics.Strafunski.StrategyLib.ChaseImports, Data.Generics.Strafunski.StrategyLib.ContainerTheme,@@ -55,5 +54,6 @@ base > 4.4 && < 4.8, mtl > 2.2, syb > 0.3 && < 4.1,- directory > 1.1 && < 1.2.1+ directory > 1.1 && < 1.2.2,+ transformers >= 0.2