18 lines
573 B
Haskell
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 ()
|