commit 448176aa98e03a31121501af004d8159e92b2f66 Author: Roman Cheplyaka 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'.