if bound
then do
mv <- newEmptyMVar
- forkIO (Exception.try action >>= putMVar mv)
+ _ <- forkIO (Exception.try action >>= putMVar mv)
takeMVar mv >>= \ei -> case ei of
Left exception -> Exception.throw (exception :: SomeException)
Right result -> return result
emptySampleVar v = do
(readers, var) <- takeMVar v
if readers > 0 then do
- takeMVar var
+ _ <- takeMVar var
putMVar v (0,var)
else
putMVar v (readers,var)
hIsEOF :: Handle -> IO Bool
hIsEOF handle =
catch
- (do hLookAhead handle; return False)
+ (hLookAhead handle >> return False)
(\e -> if isEOFError e then return True else ioError e)
-- ---------------------------------------------------------------------------
case cast devTo of
Nothing -> ioe_dupHandlesNotCompatible h
Just dev' -> do
- IODevice.dup2 dev dev'
+ _ <- IODevice.dup2 dev dev'
FileHandle _ m <- dupHandle_ dev' filepath other_side h_ mb_finalizer
takeMVar m
pName <- System.Environment.getProgName
existing_args <- System.Environment.getArgs
bracket (setArgs new_args)
- (\argv -> do setArgs (pName:existing_args); freeArgv argv)
+ (\argv -> do _ <- setArgs (pName:existing_args)
+ freeArgv argv)
(const act)
freeArgv :: Ptr CString -> IO ()