{-# LANGUAGE FlexibleContexts, FunctionalDependencies, RankNTypes, TupleSections #-} -- | The client-server communication monads. module Game.LambdaHack.Client.ProtocolClient ( MonadClientReadResponse(..), MonadClientWriteRequest(..) ) where import Game.LambdaHack.Client.MonadClient class MonadClient m => MonadClientReadResponse resp m | m -> resp where receiveResponse :: m resp class MonadClient m => MonadClientWriteRequest req m | m -> req where sendRequest :: req -> m ()