packages feed

gore-and-ash-async 1.0.1.0 → 1.1.0.0

raw patch · 2 files changed

+14/−3 lines, 2 filesdep +resourcetdep +transformers-base

Dependencies added: resourcet, transformers-base

Files

gore-and-ash-async.cabal view
@@ -1,5 +1,5 @@ name:                gore-and-ash-async-version:             1.0.1.0+version:             1.1.0.0 synopsis:            Core module for Gore&Ash engine that embeds async IO actions into game loop. description:         Please see README.md homepage:            https://github.com/TeaspotStudio/gore-and-ash-async#readme@@ -29,9 +29,11 @@                     , gore-and-ash >= 1.1.0.1                     , hashable >= 1.2.4.0                     , mtl >= 2.2.1+                    , resourcet >= 1.1.7.1                     , transformers >= 0.4.2.0+                    , transformers-base >= 0.4.4                     , unordered-containers >= 0.2.5.1-+                       default-extensions:                        BangPatterns                       DeriveGeneric
src/Game/GoreAndAsh/Async/Module.hs view
@@ -13,9 +13,12 @@   ) where  import Control.Concurrent.Async+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.Proxy   import Game.GoreAndAsh@@ -44,8 +47,14 @@ -- -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module. newtype AsyncT s m a = AsyncT { runAsyncT :: StateT (AsyncState s) m a }-  deriving (Functor, Applicative, Monad, MonadState (AsyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)+  deriving (Functor, Applicative, Monad, MonadState (AsyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e) +instance MonadBase IO m => MonadBase IO (AsyncT s m) where+  liftBase = AsyncT . liftBase++instance MonadResource m => MonadResource (AsyncT s m) where +  liftResourceT = AsyncT . liftResourceT+   instance GameModule m s => GameModule (AsyncT s m) (AsyncState s) where    type ModuleState (AsyncT s m) = AsyncState s   runModule (AsyncT m) s1 = do