@@ -716,10 +716,12 @@ mask :: ((forall a. Process a -> Process a) -> Process b) -> Process b
716716mask p = do
717717 lproc <- ask
718718 liftIO $ Ex.mask $ \restore ->
719− runLocalProcess lproc (p (liftRestore lproc restore))
719+ runLocalProcess lproc (p (liftRestore restore))
720720 where
721− liftRestore :: LocalProcess -> (forall a. IO a -> IO a) -> (forall a. Process a -> Process a)
722− liftRestore lproc restoreIO = liftIO . restoreIO . runLocalProcess lproc
721+ liftRestore :: (forall a. IO a -> IO a) -> (forall a. Process a -> Process a)
722+ liftRestore restoreIO = \p2 -> do
723+ llproc <- ask
724+ liftIO $ restoreIO $ runLocalProcess llproc p2
723725
724726-- | Lift 'Control.Exception.onException'
725727onException :: Process a -> Process b -> Process a