Moduletyped-protocols-1.2.2.0
Network.TypedProtocol.Peer
- 8 types
- 2 values
- Packagetyped-protocols-1.2.2.0
- Exports14
- LicenceApache-2.0
Equations
Outstanding 'NonPipelined = 'ZOutstanding ('Pipelined n _1) = nOutstanding ('Lookahead _1 _2) = 'Z
Equations
OutstandingSenders 'NonPipelined = 'ZOutstandingSenders ('Pipelined _1 _2) = 'ZOutstandingSenders ('Lookahead n _1) = n
Constructors
Effect :: m (Peer ps pr pl st m a) -> Peer ps pr pl st m aYield :: (StateTokenI st, StateTokenI st', ActiveState st, Outstanding pl ~ 'Z, OutstandingSenders pl ~ 'Z) => WeHaveAgencyProof pr st -> Message ps st st' -> Peer ps pr pl st' m a -> Peer ps pr pl st m aAwait :: (StateTokenI st, ActiveState st, Outstanding pl ~ 'Z, OutstandingSenders pl ~ 'Z) => TheyHaveAgencyProof pr st -> (forall (st' :: ps). Message ps st st' -> Peer ps pr pl st' m a) -> Peer ps pr pl st m aDone :: (StateTokenI st, StateAgency st ~ 'NobodyAgency, Outstanding pl ~ 'Z, OutstandingSenders pl ~ 'Z) => NobodyHasAgencyProof pr st -> a -> Peer ps pr pl st m aYieldPipelined :: (StateTokenI st, StateTokenI st', ActiveState st) => WeHaveAgencyProof pr st -> Message ps st st' -> Receiver ps pr st' st'' m c -> Peer ps pr ('Pipelined ('S n) c) st'' m a -> Peer ps pr ('Pipelined n c) st m aCollect :: (StateTokenI st, ActiveState st) => Maybe (Peer ps pr ('Pipelined ('S n) c) st m a) -> (c -> Peer ps pr ('Pipelined n c) st m a) -> Peer ps pr ('Pipelined ('S n) c) st m aAwaitLookahead :: (StateTokenI st, StateTokenI st', ActiveState st, ActiveState st') => TheyHaveAgencyProof pr st' -> Sender ps pr sv st st' m -> (forall (st'' :: ps). Message ps st' st'' -> Peer ps pr ('Lookahead ('S n) sv) st'' m a) -> Peer ps pr ('Lookahead n sv) st m aFlushSender :: StateTokenI st => Maybe (Peer ps pr ('Lookahead ('S n) sv) st m a) -> Peer ps pr ('Lookahead n sv) st m a -> Peer ps pr ('Lookahead ('S n) sv) st m a
Constructors
PeerLookahead :: Peer ps pr ('Lookahead 'Z 'VariableSender) st m a -> PeerLookahead ps pr st m arunPeerLookahead :: Peer ps pr ('Lookahead 'Z 'VariableSender) st m a
Instances1Functor
Functor m => Functor (PeerLookahead ps pr st m)Defined in typed-protocols-1.2.2.0 · Network.TypedProtocol.Peer
Constructors
PeerLookaheadFixedSender :: Sender ps pr 'VariableSender apst apst' m -> Peer ps pr ('Lookahead 'Z ('FixedSender apst apst')) st m a -> PeerLookaheadFixedSender ps pr st m a
Instances1Functor
Functor m => Functor (PeerLookaheadFixedSender ps pr st m)Defined in typed-protocols-1.2.2.0 · Network.TypedProtocol.Peer
Constructors
PeerPipelined :: Peer ps pr ('Pipelined 'Z c) st m a -> PeerPipelined ps pr st m arunPeerPipelined :: Peer ps pr ('Pipelined 'Z c) st m a
Instances1Functor
Functor m => Functor (PeerPipelined ps pr st m)Defined in typed-protocols-1.2.2.0 · Network.TypedProtocol.Peer
Constructors
ReceiverEffect :: m (Receiver ps pr st stdone m c) -> Receiver ps pr st stdone m cReceiverDone :: c -> Receiver ps pr st st m cReceiverAwait :: (StateTokenI st, ActiveState st) => TheyHaveAgencyProof pr st -> (forall (st' :: ps). Message ps st st' -> Receiver ps pr st' stdone m c) -> Receiver ps pr st stdone m c
data
data Sender ps (pr :: PeerRole) (sv :: SenderVariability ps) (st :: ps) (stdone :: ps) (m :: Type -> Type) whereConstructors
TheSender :: Sender ps pr ('FixedSender st stdone) st stdone mSenderEffect :: m (Sender ps pr 'VariableSender st stdone m) -> Sender ps pr 'VariableSender st stdone mSenderDone :: Sender ps pr 'VariableSender st st mSenderYield :: (StateTokenI st, StateTokenI st', ActiveState st) => !WeHaveAgencyProof pr st -> Message ps st st' -> Sender ps pr 'VariableSender st' stdone m -> Sender ps pr 'VariableSender st stdone m