Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Wedge ps (stIdle :: ps) ps' (stIdle' :: ps') where
- data SingWedge (st :: Wedge ps stIdle ps' stIdle') where
- SingStIdle :: forall {ps} {stIdle :: ps} {ps'} {stIdle' :: ps'}. SingWedge ('StIdle :: Wedge ps stIdle ps' stIdle')
- SingStFst :: forall {ps} {stIdle :: ps} {ps'} {stIdle' :: ps'} (st1 :: ps). StateToken st1 -> SingWedge ('StFst st1 :: Wedge ps stIdle ps' stIdle')
- SingStSnd :: forall {ps'} {ps} {stIdle :: ps} {stIdle' :: ps'} (st' :: ps'). StateToken st' -> SingWedge ('StSnd st' :: Wedge ps stIdle ps' stIdle')
- data SingStart (st :: Wedge ps stIdle ps' stIdle') where
- type PingPong2 = Wedge PingPong 'StIdle PingPong 'StIdle
- pingPong2Client :: forall (m :: Type -> Type). Client PingPong2 'NonPipelined ('StIdle :: Wedge PingPong 'StIdle PingPong 'StIdle) m ()
- pingPong2Client' :: forall (m :: Type -> Type). Client PingPong2 ('Pipelined 'Z ()) ('StIdle :: Wedge PingPong 'StIdle PingPong 'StIdle) m ()
Documentation
data Wedge ps (stIdle :: ps) ps' (stIdle' :: ps') where Source #
A wedge sum of two protocols.
One can interleave both protocols using protocol pipelining. Termination must be done by terminating one of the protocols.
StIdle :: forall ps (stIdle :: ps) ps' (stIdle' :: ps'). Wedge ps stIdle ps' stIdle' | |
StFst :: forall ps (stIdle :: ps) ps' (stIdle' :: ps'). ps -> Wedge ps stIdle ps' stIdle' | |
StSnd :: forall ps' ps (stIdle :: ps) (stIdle' :: ps'). ps' -> Wedge ps stIdle ps' stIdle' |
Instances
Protocol (Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge
| |||||
StateTokenI ('StIdle :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge stateToken :: StateToken ('StIdle :: Wedge ps stIdle ps' stIdle') # | |||||
StateTokenI st => StateTokenI ('StFst st :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge stateToken :: StateToken ('StFst st :: Wedge ps stIdle ps' stIdle') # | |||||
StateTokenI st => StateTokenI ('StSnd st :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge stateToken :: StateToken ('StSnd st :: Wedge ps stIdle ps' stIdle') # | |||||
data Message (Wedge ps stIdle ps' stIdle') (from :: Wedge ps stIdle ps' stIdle') (to :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge data Message (Wedge ps stIdle ps' stIdle') (from :: Wedge ps stIdle ps' stIdle') (to :: Wedge ps stIdle ps' stIdle') where
| |||||
type StateToken Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge | |||||
type StateAgency ('StIdle :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge | |||||
type StateAgency ('StFst st :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge | |||||
type StateAgency ('StSnd st :: Wedge ps stIdle ps' stIdle') Source # | |||||
Defined in Network.TypedProtocol.Trans.Wedge |
data SingWedge (st :: Wedge ps stIdle ps' stIdle') where Source #
SingStIdle :: forall {ps} {stIdle :: ps} {ps'} {stIdle' :: ps'}. SingWedge ('StIdle :: Wedge ps stIdle ps' stIdle') | |
SingStFst :: forall {ps} {stIdle :: ps} {ps'} {stIdle' :: ps'} (st1 :: ps). StateToken st1 -> SingWedge ('StFst st1 :: Wedge ps stIdle ps' stIdle') | |
SingStSnd :: forall {ps'} {ps} {stIdle :: ps} {stIdle' :: ps'} (st' :: ps'). StateToken st' -> SingWedge ('StSnd st' :: Wedge ps stIdle ps' stIdle') |
data SingStart (st :: Wedge ps stIdle ps' stIdle') where Source #
A Singleton type which allows to pick the starting protocol state.