@@ -35,17 +35,11 @@ import Control.Exception (SomeException (..))
35import qualified Control.Exception.Lifted as EL
35import qualified Control.Exception.Lifted as EL
36import Control.Monad (ap, liftM, MonadPlus(..), mzero,
36import Control.Monad (ap, liftM, MonadPlus(..), mzero,
38−--import Control.Monad.Base (MonadBase (..), liftBaseDefault)
38+import Control.Monad.Base (MonadBase (..), liftBaseDefault)
39import Control.Monad.Catch (MonadThrow, throwM)
39import Control.Monad.Catch (MonadThrow, throwM)
40import Control.Monad.IO.Class (MonadIO(..))
40import Control.Monad.IO.Class (MonadIO(..))
41import Control.Monad.Trans.Class (MonadTrans (lift))
41import Control.Monad.Trans.Class (MonadTrans (lift))
42import Control.Monad.Trans.Control (MonadBaseControl, liftBaseWith)
42import Control.Monad.Trans.Control (MonadBaseControl, liftBaseWith)
44−import Control.Monad.Trans.Control (ComposeSt, MonadBaseControl (..),
45− MonadTransControl (..),
47− defaultRestoreM, liftBaseWith)
49import Data.Functor (void)
43import Data.Functor (void)
50import Data.IORef (IORef, modifyIORef, newIORef,
44import Data.IORef (IORef, modifyIORef, newIORef,
51 writeIORef, readIORef)
45 writeIORef, readIORef)
@@ -417,31 +411,9 @@ instance (Num a, Monad (AsyncT m)) => Num (AsyncT m a) where
417instance MonadTrans AsyncT where
411instance MonadTrans AsyncT where
418 lift mx = AsyncT $ \ctx _ yld -> mx >>= (\a -> (yld a ctx Nothing))
412 lift mx = AsyncT $ \ctx _ yld -> mx >>= (\a -> (yld a ctx Nothing))
421instance (MonadBase b m, Monad m) => MonadBase b (AsyncT m) where
414instance (MonadBase b m, Monad m) => MonadBase b (AsyncT m) where
422 liftBase = liftBaseDefault
415 liftBase = liftBaseDefault
424−-------------------------------------------------------------------------------
426−-------------------------------------------------------------------------------
428−instance MonadTransControl AsyncT where
429− type StT AsyncT a = (Maybe a, Context)
430− liftWith f = AsyncT $ StateT $ \s ->
431− liftM (\x -> (Just x, s))
432− (f $ \t -> runStateT (runAsyncT t) s)
433− restoreT = AsyncT . StateT . const
434− {-# INLINABLE liftWith #-}
435− {-# INLINABLE restoreT #-}
437−instance (MonadBaseControl b m, Monad m) => MonadBaseControl b (AsyncT m) where
438− type StM (AsyncT m) a = ComposeSt AsyncT m a
439− liftBaseWith = defaultLiftBaseWith
440− restoreM = defaultRestoreM
441− {-# INLINABLE liftBaseWith #-}
442− {-# INLINABLE restoreM #-}
445------------------------------------------------------------------------------
417------------------------------------------------------------------------------
446-- Standard transformer instances
418-- Standard transformer instances
447------------------------------------------------------------------------------
419------------------------------------------------------------------------------