@@ -12,28 +12,30 @@ module Duct.Threads
15−import Control.Applicative ((<|>))
15+import Control.Applicative ((<|>))
16−import Control.Concurrent
16+import Control.Concurrent (ThreadId, forkIO, killThread,
17− (ThreadId, forkIO, myThreadId, threadDelay, killThread)
17+ myThreadId, threadDelay)
18−import Control.Concurrent.STM
18+import Control.Concurrent.STM (TChan, atomically, newTChan,
19− (TChan, atomically, newTChan, readTChan, tryReadTChan, writeTChan)
19+ readTChan, tryReadTChan,
20−import Control.Exception (SomeException(..), ErrorCall(..), catch)
21+import Control.Exception (ErrorCall (..),
22+ SomeException (..), catch)
21−import qualified Control.Exception.Lifted as EL
23+import qualified Control.Exception.Lifted as EL
22−import Data.Dynamic (Typeable)
24− (IORef, atomicModifyIORef, readIORef, writeIORef, modifyIORef,
26−import Data.List (delete)
27−import Data.Maybe (fromJust)
28−import Control.Monad.IO.Class (MonadIO(..))
24+import Control.Monad.IO.Class (MonadIO (..))
29−import Control.Monad.State
25+import Control.Monad.State (StateT, get, gets, modify, put,
30− (StateT, get, gets, modify, put, runStateT, when)
26+ runStateT, when)
31−import Control.Monad.Trans.Class (MonadTrans(lift))
27+import Control.Monad.Trans.Class (MonadTrans (lift))
32−import Control.Monad.Trans.Control (MonadBaseControl, liftBaseWith)
28+import Control.Monad.Trans.Control (MonadBaseControl, liftBaseWith)
29+import Data.Dynamic (Typeable)
30+import Data.IORef (IORef, atomicModifyIORef,
31+ modifyIORef, newIORef, readIORef,
33+import Data.List (delete)
34+import Data.Maybe (fromJust)
33−import Unsafe.Coerce (unsafeCoerce)
35+import Unsafe.Coerce (unsafeCoerce)
35−import Duct.AsyncT
37+import Duct.AsyncT
36−import Duct.Event
38+import Duct.Event
38------------------------------------------------------------------------------
40------------------------------------------------------------------------------
39-- Utilities
41-- Utilities