free-agent-0.1.0: Multi agent systems based on free monads.

Portabilityghc
Stabilityexperimental
Maintainernickolay.kudasov@gmail.com
Safe HaskellSafe-Inferred

Control.Agent.Free.Environments.STM

Contents

Description

Common interfaces.

Synopsis

SendRecv

data SendRecvParams i msg

Parameters needed to run an interpreter.

Constructors

SendRecvParams 

Fields

sendRecvChans :: Map i (TChan (i, msg))

Channels for messages.

sendRecvId :: i

Agent's ID.

initSendRecvParams :: i -> SendRecvParams i msg

Initial parameter values.

interpretSendRecv :: (Ord i, MonadReader (SendRecvParams i msg) m, MonadIO m) => SendRecv i msg a -> m a

Interpret SendRecv interface using TChans.