turn-loop-0.1.0: Manage multiple turned-based sessions

Safe HaskellNone
LanguageHaskell2010

TurnLoop.STM

Documentation

newSessionWithChan :: MonadIO m => m (Session input state terminal) Source #

type UserQueue sessionId rep userId = [(userId, MVar (Starter sessionId rep userId))] Source #

type AnnounceDeck sessionId rep userId = Map sessionId [MVar (Starter sessionId rep userId)] Source #

newLobbyFIFOWithSTM :: (MonadIO m, Ord sessionId) => m (Lobby sessionId rep userId m) Source #

newSessionsWithSTM :: (MonadIO m, Ord sessionId) => m (Sessions sessionId userId rep input state terminal m) Source #

newRegistryWithSTM :: (MonadIO m, Ord userId) => m userId -> m (Registry userId user m) Source #

newResultsWithSTM :: (MonadIO m, Ord sessionId) => m (Results sessionId rep userId state extra m) Source #

newComponentsWithSTM :: (MonadIO m, Ord userId, Ord sessionId) => m userId -> m (Components sessionId rep userId user input state extra terminal m) Source #