@@ -108,6 +108,7 @@ import Control.Concurrent.STM (STM)
108import Control.Concurrent.STM.TChan (TChan)
108import Control.Concurrent.STM.TChan (TChan)
109import qualified Network.Transport as NT (EndPoint, EndPointAddress, Connection)
109import qualified Network.Transport as NT (EndPoint, EndPointAddress, Connection)
110import Control.Applicative (Applicative, Alternative, (<$>), (<*>))
110import Control.Applicative (Applicative, Alternative, (<$>), (<*>))
111+import Control.Monad.Fix (MonadFix)
111import Control.Monad.Reader (MonadReader(..), ReaderT, runReaderT)
112import Control.Monad.Reader (MonadReader(..), ReaderT, runReaderT)
112import Control.Monad.IO.Class (MonadIO)
113import Control.Monad.IO.Class (MonadIO)
113import Control.Distributed.Process.Serializable
114import Control.Distributed.Process.Serializable
@@ -291,7 +292,7 @@ data LocalProcessState = LocalProcessState
291newtype Process a = Process {
292newtype Process a = Process {
292 unProcess :: ReaderT LocalProcess IO a
293 unProcess :: ReaderT LocalProcess IO a
294− deriving (Functor, Monad, MonadIO, MonadReader LocalProcess, Typeable, Applicative)
295+ deriving (Functor, Monad, MonadIO, MonadReader LocalProcess, Typeable, Applicative, MonadFix)
296--------------------------------------------------------------------------------
297--------------------------------------------------------------------------------
297-- Typed channels --
298-- Typed channels --
@@ -762,4 +763,3 @@ typedChannelWithId cid = typedChannels >>> DAC.mapMaybe cid
762{-# INLINE forever' #-}
763{-# INLINE forever' #-}
763forever' :: Monad m => m a -> m b
764forever' :: Monad m => m a -> m b
764forever' a = let a' = a >> a' in a'
765forever' a = let a' = a >> a' in a'