butter-0.1.0.6: Monad Transformer for Asyncronous Message Passing

Safe HaskellNone
LanguageHaskell2010

Distrib.Butter.Lang

Documentation

data ProcessID #

Constructors

PID 

Fields

Named 

Fields

Instances
Eq ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

Show ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

Generic ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

Associated Types

type Rep ProcessID :: * -> * #

ToJSON ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

FromJSON ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

type Rep ProcessID # 
Instance details

Defined in Distrib.Butter.Lang

data Action (m :: * -> *) next where #

Constructors

Lift :: m a -> (a -> next) -> Action m next 
Connect :: Text -> Text -> Int -> next -> Action m next 
Spawn :: Butter m () -> (ProcessID -> next) -> Action m next 
Send :: ProcessID -> ByteString -> next -> Action m next 
Receive :: (ByteString -> next) -> Action m next 
Friends :: ([Text] -> next) -> Action m next 
Self :: (ProcessID -> next) -> Action m next 
Alive :: ProcessID -> (Bool -> next) -> Action m next 
Name :: Text -> next -> Action m next 
Instances
Functor (Action m) # 
Instance details

Defined in Distrib.Butter.Lang

Methods

fmap :: (a -> b) -> Action m a -> Action m b #

(<$) :: a -> Action m b -> Action m a #

MonadIO m => MonadIO (Free (Action m)) # 
Instance details

Defined in Distrib.Butter.Lang

Methods

liftIO :: IO a -> Free (Action m) a #

type Butter m a = Free (Action m) a #

connect :: Text -> Text -> Int -> Butter m () #

name :: Text -> Butter m () #

send :: ToJSON a => ProcessID -> a -> Butter m () #

receive :: (MonadIO m, FromJSON a) => Butter m a #

lift :: m a -> Butter m a #

spreadLocal :: (MonadIO m, ForkableMonad m, ToJSON a, FromJSON a) => Butter m a -> m a #

spread :: (MonadIO m, ForkableMonad m, ToJSON a, FromJSON a) => Text -> Maybe Int -> Butter m a -> m a #