packages feed

logict-state 0.1.0.5 → 0.1.1.0

raw patch · 4 files changed

+12/−7 lines, 4 filesdep ~logictPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: logict

API changes (from Hackage documentation)

+ Control.Monad.LogicState: instance Control.Monad.Fail.MonadFail (Control.Monad.LogicState.LogicStateT gs bs m)
- Control.Monad.LogicState: LogicStateT :: forall r. LogicContS gs bs r m a -> LogicStateT gs bs m a
+ Control.Monad.LogicState: LogicStateT :: (forall r. LogicContS gs bs r m a) -> LogicStateT gs bs m a
- Control.Monad.TransLogicState.Class: class TransLogicState s t
+ Control.Monad.TransLogicState.Class: class MonadTrans t => TransLogicState s t
- Control.Monad.TransLogicState.Class: observe :: (TransLogicState s t) => s -> t Identity a -> a
+ Control.Monad.TransLogicState.Class: observe :: TransLogicState s t => s -> t Maybe a -> Maybe a
- Control.Monad.TransLogicState.Class: observeAll :: (TransLogicState s t) => s -> t Identity a -> [a]
+ Control.Monad.TransLogicState.Class: observeAll :: TransLogicState s t => s -> t Identity a -> [a]
- Control.Monad.TransLogicState.Class: observeAllT :: (TransLogicState s t, (Monad m)) => s -> t m a -> m [a]
+ Control.Monad.TransLogicState.Class: observeAllT :: (TransLogicState s t, Monad m) => s -> t m a -> m [a]
- Control.Monad.TransLogicState.Class: observeMany :: (TransLogicState s t) => s -> Int -> t Identity a -> [a]
+ Control.Monad.TransLogicState.Class: observeMany :: TransLogicState s t => s -> Int -> t Identity a -> [a]
- Control.Monad.TransLogicState.Class: observeManyT :: forall m a. (TransLogicState s t, (Monad m)) => s -> Int -> t m a -> m [a]
+ Control.Monad.TransLogicState.Class: observeManyT :: forall m a. (TransLogicState s t, Monad m) => s -> Int -> t m a -> m [a]
- Control.Monad.TransLogicState.Class: observeStateAllT :: (TransLogicState s t, (Monad m)) => s -> t m a -> m ([a], s)
+ Control.Monad.TransLogicState.Class: observeStateAllT :: (TransLogicState s t, Monad m) => s -> t m a -> m ([a], s)
- Control.Monad.TransLogicState.Class: observeStateManyT :: forall m a. (TransLogicState s t, (Monad m)) => s -> Int -> t m a -> m ([a], s)
+ Control.Monad.TransLogicState.Class: observeStateManyT :: forall m a. (TransLogicState s t, Monad m) => s -> Int -> t m a -> m ([a], s)
- Control.Monad.TransLogicState.Class: observeT :: (TransLogicState s t, (Monad m)) => s -> t m a -> m a
+ Control.Monad.TransLogicState.Class: observeT :: (TransLogicState s t, MonadFail m) => s -> t m a -> m a

Files

logict-state.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                logict-state-version:             0.1.0.5+version:             0.1.1.0 synopsis:            Library for logic programming based on haskell package logict description:         Logic programming built on top of part of logict library, in particular for dealing with backtrackable state homepage:            https://github.com/atzedijkstra/logict-state@@ -29,6 +29,6 @@   build-depends:       base >=4.8 && < 5,                        mtl >= 2.1,                        transformers >= 0.4.2,-                       logict >= 0.6.0.2+                       logict >= 0.8.0.0   hs-source-dirs:      src   default-language:    Haskell2010
src/Control/Monad/LogicState.hs view
@@ -83,6 +83,8 @@ instance Monad (LogicStateT gs bs m) where     return a = LogicStateT ($ a)     m >>= f = LogicStateT $ \sk -> unLogicStateT m (\a -> unLogicStateT (f a) sk)++instance MonadFail (LogicStateT gs bs m) where     fail _ = LogicStateT $ flip const  instance Alternative (LogicStateT gs bs f) where@@ -114,6 +116,8 @@          (return Nothing)  instance TransLogicState (gs,bs) (LogicStateT gs bs) where+  -- observe s lt = runIdentity $ evalStateT (unLogicStateT lt (\a _ -> return a) (error "No answer.")) s+   observeT s lt = evalStateT (unLogicStateT lt (\a _ -> return a) (fail "No answer.")) s        observeStateAllT s m = runStateT (unLogicStateT m
src/Control/Monad/LogicState/Logic.hs view
@@ -9,6 +9,7 @@  import           Control.Monad.Logic hiding (observeT, observeAllT, observeManyT, observe, observeAll, observeMany) import qualified Control.Monad.Logic as CML+import           Control.Monad.Trans.Class (lift)  import           Control.Monad.TransLogicState.Class 
src/Control/Monad/TransLogicState/Class.hs view
@@ -13,14 +13,14 @@  import Control.Arrow import Control.Monad.Identity--- import Control.Monad.Trans+import Control.Monad.Trans  -- | Additions to MonadTrans specifically useful for LogicState-class {- MonadTrans t => -} TransLogicState s t where+class MonadTrans t => TransLogicState s t where   -------------------------------------------------------------------------   -- | Extracts the first result from a 't m' computation,   -- failing otherwise.-  observeT :: (Monad m) => s -> t m a -> m a+  observeT :: (MonadFail m) => s -> t m a -> m a   observeT e m = fmap head $ observeManyT e 1 m      -------------------------------------------------------------------------@@ -48,8 +48,8 @@  ------------------------------------------------------------------------- -- | Extracts the first result from a LogicVar computation.-observe :: (TransLogicState s t) => s -> t Identity a -> a-observe e = runIdentity . observeT e+observe :: (TransLogicState s t) => s -> t Maybe a -> Maybe a+observe e = observeT e  ------------------------------------------------------------------------- -- | Extracts all results from a LogicVar computation.