demobot/src/Bot/DSL/Network.hs

18 lines
573 B
Haskell

{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE Safe #-}
{-# LANGUAGE TypeFamilies #-}
module Bot.DSL.Network where
import Data.Text (Text)
data Request meta = Request { content :: Text
, meta :: meta }
data Response meta = Response { content :: Text
, meta :: meta }
class Monad m => MonadNetwork m where
-- Meta for stuff like event types, or source / target information
type Meta m :: *
recvMsg :: m (Request (Meta m))
putMsg :: Response (Meta m) -> m ()