packages feed

gore-and-ash-sync 1.1.1.0 → 1.2.0.0

raw patch · 2 files changed

+18/−6 lines, 2 filesdep +resourcetdep +transformersdep +transformers-basedep ~gore-and-ash-actordep ~gore-and-ash-loggingdep ~gore-and-ash-network

Dependencies added: resourcet, transformers, transformers-base

Dependency ranges changed: gore-and-ash-actor, gore-and-ash-logging, gore-and-ash-network

Files

gore-and-ash-sync.cabal view
@@ -1,5 +1,5 @@ name:                gore-and-ash-sync-version:             1.1.1.0+version:             1.2.0.0 synopsis:            Gore&Ash module for high level network synchronization description:         Please see README.md homepage:            https://github.com/Teaspot-Studio/gore-and-ash-sync@@ -33,14 +33,17 @@                      , deepseq >= 1.4.1.1                      , exceptions >= 0.8.0.2                      , gore-and-ash >= 1.1.0.0-                     , gore-and-ash-actor >= 1.1.0.0-                     , gore-and-ash-logging >= 1.1.0.0-                     , gore-and-ash-network >= 1.1.0.0+                     , gore-and-ash-actor >= 1.2.0.0+                     , gore-and-ash-logging >= 1.2.0.0+                     , gore-and-ash-network >= 1.2.0.0                      , hashable >= 1.2.3.3                      , mtl >= 2.2.1+                     , resourcet >= 1.1.7.1                      , text >= 1.2.2.0+                     , transformers >= 0.4.2+                     , transformers-base >= 0.4.4                      , unordered-containers >= 0.2.5.1-                     +   default-extensions:                          Arrows                        BangPatterns
src/Game/GoreAndAsh/Sync/Module.hs view
@@ -17,9 +17,12 @@   , syncLog   ) where +import Control.Monad.Base  import Control.Monad.Catch+import Control.Monad.Error.Class  import Control.Monad.Fix  import Control.Monad.State.Strict+import Control.Monad.Trans.Resource  import Data.Maybe import Data.Monoid  import Data.Proxy @@ -68,8 +71,14 @@ -- -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module. newtype SyncT s m a = SyncT { runSyncT :: StateT (SyncState s) m a }-  deriving (Functor, Applicative, Monad, MonadState (SyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)+  deriving (Functor, Applicative, Monad, MonadState (SyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e) +instance MonadBase IO m => MonadBase IO (SyncT s m) where +  liftBase = SyncT . liftBase ++instance MonadResource m => MonadResource (SyncT s m) where +  liftResourceT = SyncT . liftResourceT+   instance (NetworkMonad m, LoggingMonad m, ActorMonad m, GameModule m s) => GameModule (SyncT s m) (SyncState s) where    type ModuleState (SyncT s m) = SyncState s   runModule (SyncT m) s = do