gore-and-ash-network 1.2.2.0 → 1.3.2.0
raw patch · 2 files changed
+14/−2 lines, 2 filesdep +resourcetdep +transformersdep +transformers-base
Dependencies added: resourcet, transformers, transformers-base
Files
gore-and-ash-network.cabal view
@@ -1,5 +1,5 @@ name: gore-and-ash-network-version: 1.2.2.0+version: 1.3.2.0 synopsis: Core module for Gore&Ash engine with low level network API description: Please see README.md homepage: https://github.com/Teaspot-Studio/gore-and-ash-network@@ -70,8 +70,11 @@ , integer-gmp >= 1.0.0.0 , mtl >= 2.2.1 , network >= 2.6.2.1+ , resourcet >= 1.1.7.1 , text >= 1.2.1.3 , text-show >= 2+ , transformers >= 0.4.2+ , transformers-base >= 0.4.4 , typesafe-endian >= 0.1 , unordered-containers >= 0.2.5.1
src/Game/GoreAndAsh/Network/Module.hs view
@@ -14,10 +14,13 @@ NetworkT(..) ) where +import Control.Monad.Base import Control.Monad.Catch+import Control.Monad.Error.Class import Control.Monad.Extra (whenJust) import Control.Monad.Fix import Control.Monad.State.Strict+import Control.Monad.Trans.Resource import Data.Hashable import Game.GoreAndAsh import Game.GoreAndAsh.Network.State@@ -49,8 +52,14 @@ -- -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module. newtype NetworkT s m a = NetworkT { runNetworkT :: StateT (NetworkState s) m a }- deriving (Functor, Applicative, Monad, MonadState (NetworkState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)+ deriving (Functor, Applicative, Monad, MonadState (NetworkState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e) +instance MonadBase IO m => MonadBase IO (NetworkT s m) where + liftBase = NetworkT . liftBase ++instance MonadResource m => MonadResource (NetworkT s m) where + liftResourceT = NetworkT . liftResourceT+ instance GameModule m s => GameModule (NetworkT s m) (NetworkState s) where type ModuleState (NetworkT s m) = NetworkState s