packages feed

monad-task 0.1.0 → 0.2.0

raw patch · 4 files changed

+44/−11 lines, 4 filesdep ~transformersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: transformers

API changes (from Hackage documentation)

- Control.Monad.Task: runTaskT :: TaskT e m a -> ContT (Trace m e) m a
- Control.Monad.Task.Class: instance (Error e, Monad m, MonadTask a m) => MonadTask a (ErrorT e m)
- Control.Monad.Task.Class: instance (Monad m, MonadTask a m) => MonadTask a (IdentityT m)
- Control.Monad.Task.Class: instance (Monad m, MonadTask a m) => MonadTask a (ListT m)
- Control.Monad.Task.Class: instance (Monad m, MonadTask a m) => MonadTask a (MaybeT m)
- Control.Monad.Task.Class: instance (Monad m, MonadTask a m) => MonadTask a (ReaderT r m)
- Control.Monad.Task.Class: instance (Monoid w, Monad m, MonadTask a m) => MonadTask a (WriterT w m)
- Control.Monad.Trans.Task: EXIT :: Trace m e
- Control.Monad.Trans.Task: FORK :: m (Trace m e) -> m (Trace m e) -> Trace m e
- Control.Monad.Trans.Task: RET :: Trace m e
- Control.Monad.Trans.Task: SIGNAL :: e -> m (Trace m e) -> Trace m e
- Control.Monad.Trans.Task: WATCH :: (e -> Maybe v) -> (v -> m (Trace m e)) -> Trace m e
- Control.Monad.Trans.Task: YIELD :: m (Trace m e) -> Trace m e
- Control.Monad.Trans.Task: instance Applicative (TaskT e m)
- Control.Monad.Trans.Task: instance Functor (TaskT e m)
- Control.Monad.Trans.Task: instance Monad m => Monad (TaskT e m)
- Control.Monad.Trans.Task: instance Monad m => MonadTask e (TaskT e m)
- Control.Monad.Trans.Task: instance MonadIO m => MonadIO (TaskT e m)
- Control.Monad.Trans.Task: instance MonadReader s m => MonadReader s (TaskT e m)
- Control.Monad.Trans.Task: instance MonadState s m => MonadState s (TaskT e m)
- Control.Monad.Trans.Task: instance MonadTrans (TaskT e)
- Control.Monad.Trans.Task: runTaskT :: TaskT e m a -> ContT (Trace m e) m a
+ Control.Monad.Task: [runTaskT] :: TaskT e m a -> ContT (Trace m e) m a
+ Control.Monad.Task.Class: instance (GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Except.ExceptT e m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Identity.IdentityT m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.List.ListT m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Maybe.MaybeT m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Reader.ReaderT r m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monoid w, GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Writer.Lazy.WriterT w m)
+ Control.Monad.Task.Class: instance (GHC.Base.Monoid w, GHC.Base.Monad m, Control.Monad.Task.Class.MonadTask a m) => Control.Monad.Task.Class.MonadTask a (Control.Monad.Trans.Writer.Strict.WriterT w m)
+ Control.Monad.Trans.Task: [EXIT] :: Trace m e
+ Control.Monad.Trans.Task: [FORK] :: m (Trace m e) -> m (Trace m e) -> Trace m e
+ Control.Monad.Trans.Task: [RET] :: Trace m e
+ Control.Monad.Trans.Task: [SIGNAL] :: e -> m (Trace m e) -> Trace m e
+ Control.Monad.Trans.Task: [WATCH] :: (e -> Maybe v) -> (v -> m (Trace m e)) -> Trace m e
+ Control.Monad.Trans.Task: [YIELD] :: m (Trace m e) -> Trace m e
+ Control.Monad.Trans.Task: [runTaskT] :: TaskT e m a -> ContT (Trace m e) m a
+ Control.Monad.Trans.Task: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance Control.Monad.Reader.Class.MonadReader s m => Control.Monad.Reader.Class.MonadReader s (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.Task.TaskT e)
+ Control.Monad.Trans.Task: instance GHC.Base.Applicative (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance GHC.Base.Functor (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance GHC.Base.Monad m => Control.Monad.Task.Class.MonadTask e (Control.Monad.Trans.Task.TaskT e m)
+ Control.Monad.Trans.Task: instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Trans.Task.TaskT e m)

Files

+ Changelog.txt view
@@ -0,0 +1,32 @@+commit 33ee7b37cfe93988ce2ff1955e4d6fdfda96d584+Author: Paul H. Liu <paul@thev.net>+Date:   Wed Jan 3 18:39:24 2018 -0800++    Change version bounds for dependencies, support ExceptT instead of ErrorT, and bump version to 0.2.0++commit 1087900d1b1e06ac51de46ac55a0a96b5f1405e0+Merge: f77a470 69d8d7f+Author: Paul Liu <ninegua@gmail.com>+Date:   Mon Nov 9 14:40:32 2015 -0800++    Merge pull request #1 from iblech/patch-1+    +    typo fix++commit 69d8d7f40b67359b12aee90872ae9ac6b2f38c35+Author: Ingo Blechschmidt <iblech@web.de>+Date:   Mon Nov 9 13:25:12 2015 +0100++    typo++commit f77a4702809b9383823bf30da9dd37921083d3cf+Author: Paul H. Liu <paul@thev.net>+Date:   Thu Aug 30 23:15:18 2012 -0700++    Release 0.1.0++commit c71a439757a98c0cd3541eca3968edbf08c539ba+Author: Paul LIu <ninegua@gmail.com>+Date:   Sat Aug 25 16:50:16 2012 -0700++    Initial commit
Control/Monad/Task.hs view
@@ -4,8 +4,8 @@ programs into monads via co-routines. The idea is loosely based on /Combining Events And Threads For Scalable Network Services/, by Peng Li and Steve Zdancewic, in /PLDI/, 2007.-(<http://www.cis.upenn.edu/~stevez/papers/abstracts.html#LZ07>), but -with deterministic and co-oprative lightweight threads, +(<http://www.cis.upenn.edu/~stevez/papers/abstracts.html#LZ07>), but+with deterministic and co-operative lightweight threads, also known as co-routines, so that the base monad can be anything ranging  from IO to state monads, or your favorite monad transformer stack. 
Control/Monad/Task/Class.hs view
@@ -28,22 +28,22 @@ import Control.Monad.Trans.Reader import qualified Control.Monad.Trans.Writer.Lazy as LazyWriter import qualified Control.Monad.Trans.Writer.Strict as StrictWriter-import Control.Monad.Trans.Error+import Control.Monad.Trans.Except  -- | @MonadTask@ specifies a task monad @m@ over an event type @e@. class Monad m => MonadTask e m | m -> e where   -- | @yield@ temporarily suspends current task to let others run.    yield  :: m ()-  -- | @fork@ spawns a task and runs it immediate until it ends or +  -- | @fork@ spawns a task and runs it immediately until it ends or   --   suspends before returning to current task.   fork   :: m a -> m ()-  -- | @watch@ suspends current task to wait for future events, and will+  -- | @watch@ suspends the current task to wait for future events, and will   --   resume execution when an event triggers its watching function.    watch  :: (e -> Maybe a) -> m a   -- | @signal@ broadcasts an event to all other tasks that are watching,   --   and give those who wake up the priority to run.   signal :: e -> m ()-  -- | @exit@ ends all tasks and return immediately.+  -- | @exit@ ends all tasks and returns immediately.   exit   :: m ()  -- | @orElse@ is a helper function for combining two trigger functions @@ -51,10 +51,10 @@ orElse :: (e -> Maybe a) -> (e -> Maybe b) -> e -> Maybe (Either a b) orElse f g x = maybe (fmap Right (g x)) (Just . Left) (f x) -instance (Error e, Monad m, MonadTask a m) => MonadTask a (ErrorT e m) where+instance (Monad m, MonadTask a m) => MonadTask a (ExceptT e m) where   exit   = lift exit   yield  = lift yield-  fork   = lift . fork . runErrorT +  fork   = lift . fork . runExceptT   watch  = lift . watch   signal = lift . signal 
monad-task.cabal view
@@ -1,5 +1,5 @@ name:         monad-task-version:      0.1.0+version:      0.2.0 homepage:     http://github.com/ninegua/monad-task author:       Paul Liu maintainer:   Paul Liu <paul@thev.net>@@ -14,7 +14,7 @@     based on /Combining Events And Threads For Scalable Network Services/,     by Peng Li and Steve Zdancewic, in /PLDI/, 2007.     (<http://www.cis.upenn.edu/~stevez/papers/abstracts.html#LZ07>), but -    with deterministic and co-oprative lightweight threads, also known as +    with deterministic and co-operative lightweight threads, also known as      co-routines, so that the base monad can be anything ranging from IO      to state monads, or your favorite monad transformer stack. license:      BSD3@@ -22,6 +22,7 @@  extra-source-files:    README.md+  Changelog.txt  source-repository head   type: git@@ -32,6 +33,6 @@     Control.Monad.Task     Control.Monad.Task.Class     Control.Monad.Trans.Task-  build-depends: base < 6, mtl == 2.*, transformers < 0.4+  build-depends: base < 6, mtl == 2.*, transformers > 0.4 && < 0.6   extensions:   ghc-options: -Wall -fno-warn-unused-imports