module Transceivers where
import Socketio
import AsyncTransmitter
import CompOps((>==<),(>=^^<))
import Spops(nullSP)

transmitterF :: Socket -> F [Char] b
transmitterF Socket
s = Socket -> F () b
forall ans ho. Socket -> F ans ho
closerF Socket
s F () b -> F [Char] () -> F [Char] b
forall a1 b a2. F a1 b -> F a2 a1 -> F a2 b
>==< Socket -> F [Char] ()
transmitterF' Socket
s

receiverF :: Socket -> F e [Char]
receiverF Socket
s = Socket -> F Any [Char]
forall hi. Socket -> F hi [Char]
receiverF' Socket
s F Any [Char] -> SP e Any -> F e [Char]
forall c d e. F c d -> SP e c -> F e d
>=^^< SP e Any
forall a b. SP a b
nullSP

transceiverF :: Socket -> F [Char] [Char]
transceiverF Socket
s = Socket -> F () [Char]
forall hi. Socket -> F hi [Char]
receiverF' Socket
s F () [Char] -> F [Char] () -> F [Char] [Char]
forall a1 b a2. F a1 b -> F a2 a1 -> F a2 b
>==< Socket -> F [Char] ()
transmitterF' Socket
s

asyncTransceiverF :: Socket -> F [Char] [Char]
asyncTransceiverF Socket
s = Socket -> F () [Char]
forall hi. Socket -> F hi [Char]
receiverF' Socket
s F () [Char] -> F [Char] () -> F [Char] [Char]
forall a1 b a2. F a1 b -> F a2 a1 -> F a2 b
>==< Socket -> F [Char] ()
asyncTransmitterF' Socket
s