summaryrefslogtreecommitdiff
path: root/dev-haskell/lifted-async/files/lifted-async-0.2.0.2-monad-control-1.1.patch
blob: 970d9842f770105492e1b0a93f34155b54e42c12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
commit 448176aa98e03a31121501af004d8159e92b2f66
Author: Roman Cheplyaka <roma@ro-che.info>
Date:   Tue Dec 16 12:09:52 2014 +0200

    Make lifted-async build with monad-control-1.0

diff --git a/src/Control/Concurrent/Async/Lifted.hs b/src/Control/Concurrent/Async/Lifted.hs
index fa5a158..e5034c1 100644
--- a/src/Control/Concurrent/Async/Lifted.hs
+++ b/src/Control/Concurrent/Async/Lifted.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 
 {- |
 Module      : Control.Concurrent.Async.Lifted
@@ -47,7 +48,7 @@ module Control.Concurrent.Async.Lifted
 
 import Control.Applicative
 import Control.Concurrent (threadDelay)
-import Control.Monad ((>=>), forever, liftM, void)
+import Control.Monad ((>=>), forever, liftM)
 import Data.Traversable (Traversable(..))
 import GHC.IO (unsafeUnmask)
 import Prelude hiding (mapM)
@@ -180,11 +181,11 @@ waitCatch
 waitCatch a = liftBase (A.waitCatch a) >>= sequenceEither
 
 -- | Generalized version of 'A.cancel'.
-cancel :: MonadBase IO m => Async (StM m a) -> m ()
+cancel :: MonadBase IO m => Async a -> m ()
 cancel = liftBase . A.cancel
 
 -- | Generalized version of 'A.cancelWith'.
-cancelWith :: (MonadBase IO m, Exception e) => Async (StM m a) -> e -> m ()
+cancelWith :: (MonadBase IO m, Exception e) => Async a -> e -> m ()
 cancelWith = (liftBase .) . A.cancelWith
 
 -- | Generalized version of 'A.waitAny'.
@@ -261,10 +262,10 @@ waitEitherCatchCancel a b =
 -- | Generalized version of 'A.waitEither_'.
 waitEither_
   :: MonadBaseControl IO m
-  => Async (StM m a)
-  -> Async (StM m b)
+  => Async a
+  -> Async b
   -> m ()
-waitEither_ = (void .) . waitEither
+waitEither_ a b = liftBase (A.waitEither_ a b)
 
 -- | Generalized version of 'A.waitBoth'.
 waitBoth
@@ -280,11 +281,11 @@ waitBoth a b = do
 {-# INLINABLE waitBoth #-}
 
 -- | Generalized version of 'A.link'.
-link :: MonadBase IO m => Async (StM m a) -> m ()
+link :: MonadBase IO m => Async a -> m ()
 link = liftBase . A.link
 
 -- | Generalized version of 'A.link2'.
-link2 :: MonadBase IO m => Async (StM m a) -> Async (StM m b) -> m ()
+link2 :: MonadBase IO m => Async a -> Async a -> m ()
 link2 = (liftBase .) . A.link2
 
 -- | Generalized version of 'A.race'.