pituicat/src/Affection/MessageBus/Class.hs
2017-11-27 05:27:52 +01:00

18 lines
455 B
Haskell

{-# LANGUAGE MultiParamTypeClasses #-}
module Affection.MessageBus.Class where
import Control.Concurrent.STM as STM
import Affection.MessageBus.Message
newtype (Message msg) => Channel msg = Channel (TChan msg)
class (Message msg) => Participant prt msg where
partChannel :: prt -> Channel msg
-- partConnectChannel :: prt -> Channel msg -> IO ()
partListen :: prt -> IO (Maybe msg)
partEmit :: prt -> msg -> IO ()