extensible-effects-concurrent-0.25.1: examples/example-4/Main.hs
module Main where
import Control.Eff
import Control.Eff.Concurrent
main :: IO ()
main = defaultMain example
example :: Eff Effects ()
example = do
person <- spawn "alice" alice
replyToMe <- self
sendMessage person replyToMe
personName <- receiveMessage
logInfo' ("I just met " ++ personName)
alice :: Eff Effects ()
alice = do
logInfo "I am waiting for someone to ask me..."
sender <- receiveMessage
sendMessage sender ("Alice" :: String)
logInfo' (show sender ++ " message received.")