{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE AllowAmbiguousTypes #-} module Affection.MessageBus.Class where import Affection.MessageBus.Message import Affection.Types class (Message msg) => Participant prt msg where partChannel :: prt -> Channel msg partInit :: Affection sd msg prt partListen :: prt -> IO (Maybe msg) partEmit :: prt -> msg -> IO ()